Release notes

These release notes for Cumulocity Release 2026 include information on all relevant changes, such as new features, improvements, and fixes, that have been implemented in the Cumulocity platform and its integrated applications since the previous release. Moreover the release notes include announcements for deprecations and API changes that might require action on your side at some time.

The following types of change are included:

  • Feature - New features which are generally available.
  • Preview - Features which are in Public Preview and not yet generally available.
  • Improvement - Small improvements.
  • Fixes - Bug fixes.
  • Announcement - Deprecations, removals or important UI changes.
  • API change - Breaking changes in the APIs.

Displaying all changes since Release 2025.0


March 31, 2026

Authentication tab hidden if corresponding login option is not configurable for the tenant

To simplify the user experience, changes have been made to the tabs available to users in the Administration → Settings → Authentication page. If the tenant does not have permission to manage Basic or OAI-Secure login options, the corresponding tab will not be shown. This avoids confusion about what authentication methods are configurable for the tenant.

Further information on how to configure access settings for login options can be found in the Cumulocity OpenAPI Specification.

CA certificate renewal threshold updated to 24 months

The renewal option for CA certificates provided by Cumulocity has been extended, allowing renewals up to 2 years before the expiration date, giving you more flexibility in certificate management. For more details, see the documentation.

Fixed duplicate operation creation during bulk operation execution

Performing a bulk operation could unexpectedly create more operations than intended, due to a race condition. This issue has been resolved. The fix ensures that only the correct number of operations is generated for each bulk request by addressing the underlying concurrency issue.

Map on Tracking tab correctly displayed on mobile devices

Previously, the map on the Tracking tab was not displayed when accessing the Device Management application through a mobile browser, impacting the user experience for mobile users. With this change, the map is now also correctly rendered on mobile devices.

Resolved ClassCastException during OPC UA device gateway address space scan

Previously, scanning the device gateway address space on certain OPC UA servers caused a ClassCastException when reading the root node data. The issue has been resolved by upgrading the core OPC UA library to a higher version.

Resolved connection pool shutdown issue during LWM2M firmware update

A rare scenario in the LWM2M firmware update process has been addressed that could trigger an infinite call loop, resulting in the shutdown of the connection pool. This issue caused the LWM2M agent to lose connectivity with the core system. The underlying problem has been identified and resolved, ensuring stable firmware updates and reliable agent connectivity.

Resolved HTTP connection leak in the LWM2M service

Under certain conditions, HTTP connections were not being properly closed, which could eventually lead to connection pool exhaustion. This issue has been fixed, ensuring that connections are now correctly released and system stability is improved.

Data point graph and data explorer now correctly merge y-axis units

The “Data graph” widget and the data explorer previously had an issue where matching y-axis units were not merged correctly by default, causing multiple axes with the same unit to show irrelevant duplicate data. This made graphs harder to read and interpret when several datapoints shared the same measurement units. The behavior has now been fixed so that duplicate units are automatically merged, improving clarity. In addition, axes with the same minimum and maximum values are also merged to reduce visual clutter. As a result, graphs now display multiple datapoints with shared units more cleanly and consistently, making them easier to read and compare.

Data point graph correctly displayed when exported as an image

Previously, when exporting the “Data point graph” widget as an image, the legend could overlap or be displayed incorrectly, making the image hard to read. This issue has been fixed, and exported images now display the data point graph correctly.

Data point graph legend now displays alarm/event labels instead of the type

Previously, the legend for alarms and events in the “Data point graph” widget displayed the type of the entries. This issue has been resolved. The legend now correctly displays the configured alarm or event label instead.

Data point graph now renders properly when no data exists

Previously, when selecting a time range in the data point graph with no measurement data, the “Data point graph” widget rendered an empty area, without any indication that no data is available. This behavior has been changed. The “Data point graph” widget now provides a consistent display, showing the x-axis and y-axis even when no data is available.

Data point graph slider correctly retrieves device data

In some rare cases, the slider in the “Data point graph” widget incorrectly requested data from the wrong device target, leading to no data being displayed. This issue has been resolved, and the slider now correctly retrieves the data.

Default y-axis no longer automatically includes 0

The “Data graph” widget and the data explorer previously defaulted the y-axis to always include 0, which could make visualizations less readable when the data range did not span zero. This behavior was different from the former widget and sometimes required manual adjustments to get a meaningful view. The default y-axis behavior has now been changed so it no longer automatically starts at 0, aligning it with the legacy widget. Users can still choose to force the y-axis to start at 0 using the available option. As a result, charts and graphs now scale more appropriately by default while retaining the flexibility to include 0 when needed. This improves readability for most datasets without requiring manual configuration.

Filtering for types works correctly in the Event list widget

With the introduction of the new global time context, the filtering for types was not correctly applied to the “Event list” widget. This resulted in the “Event list” widget displaying all event types, regardless of the filter settings. The fix ensures that the type filter is now correctly applied again, so that only the selected event types are shown in the event list widget when a filter is active.

Fixed alignment and text truncation issues

Some UI elements were not properly aligned, and text was truncated in certain views. This change fixes the alignment and text truncation issues in the affected views.

Fixed popovers not working correctly inside dropdown menus

In certain scenarios, popovers inside dropdown menus did not behave as expected and were not displayed correctly. This issue has been resolved.

Fixed truncation on global time context controls

Global time context controls were overlapping in smaller viewports. This fix improves the usability of global context controls, ensuring that control labels, values, and other content are fully accessible.

New data point graph and data explorer by default merge data points with the same minimum and maximum values

Previously, data points with the same minimum and maximum values were not merged on the same axis by default in the new data point graph and data explorer, which made comparison more difficult. With this change, the “Merge matching data points” option is now enabled by default, so data points with matching minimum and maximum values are automatically displayed on the same axis. This improves usability and allows users to more easily compare and analyze related data on the same chart without requiring additional configuration.

Prevented plugin translations from overriding application translations

This fix prevents plugins from overriding the translations in the shell application. Still, within a plugin, the translations provided by this plugin take precedence over the shell application’s ones. If you want to override a shell application translation, you may use application options or the localization feature.

Removed length limits for fragment, series, and label fields in data point forms

Data point forms previously imposed character length restrictions on fragment, series, and label fields, which could prevent users from entering longer, more descriptive and detailed identifiers for their data points, or from being able to select a data point that has been created with longer identifiers via API. This change removes the length limits for the fragment, series, and label fields on data point forms, allowing users to enter values of any length without being restricted by character count constraints. Additionally, visual improvements have been made to properly handle longer labels in the data point graph or data point list.

skipSSORedirect now works when basic authentication is forbidden

When basic authentication was disabled in the system, the skipSSORedirect parameter was not functioning as expected, forcing users to go through SSO authentication even when they explicitly requested to skip it. This issue has been fixed. The skipSSORedirect parameter now works correctly regardless of whether basic authentication is enabled or disabled in your environment. This allows users to bypass SSO authentication as intended when they provide the skipSSORedirect parameter, improving flexibility for integrations and automated processes that need to authenticate without going through the SSO flow.

Wildcard search support for device IDs

The new wildcard search did not support searching for IDs like the internal inventory ID or the external c8y_Hardware.serialNumber. With this change, support for searching for these IDs has been added. The internal ID uses an exact match, while the serialNumber also supports a partial matching. This helps to find a device faster, even if you only know the external ID. Note that the IDs are not shown in the returned results.

December 31, 2025

Sequential Loriot device operation processing flow now continues despite failures

Previously, when Loriot device operations were retrieved per tenant, all operations were processed sequentially. If any operation failed, the processing stopped, and an error was returned, blocking the execution of all subsequent operations until the failed operation was resolved. This issue has now been resolved. Only the failed operation is marked as failed, and the processing of the remaining operations continues uninterrupted.

Added option to control the data point graph legend

To improve the usability of data point graphs, a new option has been added that allows users to control the display of the graph legend. They can now select between an automatic mode, which shows the legend if there is sufficient space, or explicitly control the legend visibility through a dropdown menu. This change enhances the flexibility of the graph configuration and allows users to optimize the visual representation based on their specific requirements and available screen space.

Deprecation of CSV-based import assets feature in Digital Twin Manager

As part of the move to an API-first approach for asset management, the CSV-based Import assets feature will be deprecated and removed from the Digital Twin Manager (DTM).

In current versions, this feature is automatically disabled when the Asset APIs feature flag is enabled for Private Preview features on a tenant. In upcoming releases, it will be fully removed.

To ensure a smooth transition, begin preparing your migration to the Asset APIs, which enable more scalable and flexible asset creation through modern, API-driven workflows. Additional guidance will be shared soon in a dedicated Tech Community article. Comprehensive API documentation is available directly in DTM through the OpenAPI plugin. You can install it by navigating to: Administration application > Ecosystem > Extensions > Dtm-plugins > Extension package > Dtm-plugins > OpenAPI documentation.

December 12, 2025

Info tab no longer hidden when dashboard manager feature preview is disabled

With the rollout of the Dashboard manager feature preview in the Device Management application, the Info tab was hidden for some devices when the feature preview was disabled. This issue is now fixed, and the Info tab is visible again for all devices when the feature preview is disabled. Moreover, issues with the Edit widgets and Dashboard settings options in the same context have been fixed.

December 11, 2025

Improved device certificate enrollment validation

The device certificate validation has been improved to ensure that the Common Name (CN) field in the Certificate Signing Request (CSR) subject exactly matches the device ID provided during the device registration process. This enhancement improves consistency and prevents the enrollment of certificates with mismatched identifiers.

Application-specific string translations in Add asset and Subassets plugins

The text strings in the Add asset view and the Subassets tab are now scoped to the Digital Twin Manager application’s translation context. This allows users to provide application-specific translations without overriding the translations in other applications.

Data points now only require DTM permissions

Previously, data points required both inventory and Digital Twin Manager (DTM) permissions. With this change, the inventory-related permissions have been removed. Data points now only require the DTM permissions.

Display both device and asset properties for devices that are assets in Asset properties widget

The “Asset properties 2.0” widget now lists both device and asset properties for devices that are assets.

Enabled fine-grained permissions for managing assets

The Digital Twin Manager now supports fine-grained permission control for managing assets by introducing a new tenant option assets.permission.mode.
This tenant option supports three modes:

  • external (Default): Digital twin assets permissions are only enforced for assets marked with the c8y_ExternalAsset key. Users require the Digital twin assets UPDATE or ADMIN permission to modify or delete these assets.
  • all: Digital twin assets permissions are strictly required for all assets. Users must possess the Digital twin assets CREATE permission for creation, the UPDATE permission for modification, and the ADMIN permission for full management (create, update, or delete) of any asset. -none: Digital twin assets permissions are not applicable to any assets. Asset control defaults to standard Inventory permissions.

Navigation from model name to asset model details

The “Model name” column in the Asset models page is now interactive, allowing users to click a model name to view/edit the asset model details.

New Device to Asset plugin to create assets from devices

A new Device to Asset plugin has been introduced that enables users to convert existing devices into assets. Users can select multiple devices, optionally assign asset types and parent assets, and perform batch conversions through a two-step workflow.

New Properties library plugin to manage asset properties

The Dtm-plugins extension introduces a Properties library plugin to manage asset properties. Note that the plugin uses DTM APIs that are currently in Private Preview. To enable them, contact the Product team via product support to have the required feature flags activated.

Restored missing favicon for Digital Twin Manager in Firefox

Previously, the Cumulocity favicon was not displayed on the browser tab when the Digital Twin Manager application was accessed using Firefox. This issue has been fixed, and the favicon is now visible.

Simplified global context link/unlink behavior

The control linking functionality has been simplified to provide a more intuitive user experience. Previously, each control (time context, auto-refresh, aggregation) could be linked or unlinked from the global context individually. This granular approach introduced complexity and edge cases that could lead to unexpected behavior. With this change, all controls now link and unlink together as a single unified action. When a widget is linked to the global context, all its controls synchronize with the dashboard. When unlinked, the widget operates independently with its own local controls. This simplification reduces confusion and ensures consistent, predictable behavior across widgets.

Upgraded Angular and Web SDK versions

The Digital Twin Manager application has been upgraded to Angular 20.3.3 and Cumulocity Web SDK 1023.0.0, bringing improvements in platform compatibility. Custom applications using dtm-plugins will need to update to the latest plugin versions when migrating to the latest Web SDK to ensure compatibility.

Upgraded Web SDK versions

The Digital Twin Manager application has been upgraded to the Cumulocity Web SDK 1022.44.3. The custom applications that integrate dtm-plugins are advised to update their plugins to the newest versions to ensure compatibility with the updated SDK.

Users with read-only permissions can view the property details in Properties library plugin

Previously, users without the Digital twin definitions permission were limited to viewing only the list of properties in the Property Library plugin. With this enhancement, such users can now access property details in a read-only mode.

December 9, 2025

Enabled global time context section for Event list widget

The Event List widget configuration was missing the global time context section, preventing users from configuring time range, auto-refresh, and other global context settings in the widget configuration panel. With this change, the time context section has been added to the Event List widget. Users can now access and configure all time context options directly within the widget configuration panel.

Enforced fixed 5-second auto-refresh interval for dashboards

Previously, users could set different refresh intervals for dashboards. This led to inconsistent behavior across dashboards. To avoid this, the live mode now enforces a fixed refresh interval of 5 seconds or real-time updates, depending on the widget type. This improves the user experience as the dashboard refresh behavior is now consistent and predictable, with each widget refreshing either after 5 seconds or in real time based on its type.

December 8, 2025

Info dashboard fails to load for users without global permissions

In the Device Management application, in certain cases dashboards on the Info tab failed to load for users without global inventory access (that is, with inventory roles only). This issue is now fixed, and device dashboards are available for all users with access to the device.

December 4, 2025

History field removed from the Alarm API

The deprecated history field has been removed from the Alarm API. Previously, this field always returned an empty list. The field is no longer returned by the API, allowing it to be used as a custom fragment.

Limited number of events produced when receiving data from LWM2M device

Previously, each resource instance of multi-instance LWM2M resources was logged as a separate event in the verbose logging level. This change simplifies the logs by combining all resource-instance values into a single event.

December 3, 2025

Cumulocity Developer Codex now available as a blueprint on Management tenants

The Cumulocity Developer Codex — a resource providing guidance and documentation for building custom frontend solutions with the Cumulocity Web SDK — is now available as a blueprint on Management tenants. Tenant administrators can deploy the Developer Codex as an application on subtenants along with utilizing branding and translations, and make it accessible via the app switcher.

Information on migrating to Web SDK v1023 added to the Developer Codex

The Web SDK update documentation has been enhanced with additional information to cover the latest changes and improvements in version 1023 of the Web SDK. The documentation now provides detailed information on how to use the new features and APIs introduced in this version, such as the global time context. See Updating the Web SDK version in the Developer Codex.

New ai-chat component and AI chat assistant for HTML widgets

The Web SDK now includes a new ai-chat component, providing a simple and consistent way to integrate chat-driven experiences into your application.

Building on this component, we have added an AI chat assistant to the HTML widget configuration section, which supports users in generating and refining HTML-based widgets.

Note that the assistant depends on the AI Agent Manager, which is currently in preview. It is available in the HTML widget only when the microservice is enabled, and a valid provider API key is configured. Users with the Tenant Manager role can enable the feature via the Manage preview features option in the Administration application and then add the required API key in the AI Agent Manager.

December 2, 2025

MQTT Service will enforce Common Name validation for certificate-authenticated clients

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Introduction

To strengthen identity assurance for certificate-authenticated MQTT clients, the Cumulocity MQTT Service will begin enforcing Common Name (CN) validation during client certificate authentication.

Currently, the MQTT Service accepts certificates where the CN does not match the MQTT client ID.
After this change, the CN must match the client ID used during connection. This tight binding of certificates to devices will significantly reduce the risk of certificate misuse.

What is changing?

When an MQTT client connects using certificate-based authentication, the Common Name (CN) in the certificate must match the MQTT device ID.

MQTT clients may identify themselves using either of the following client ID formats:

  1. <deviceId> – standard format
  2. d:<deviceId> – supported only for legacy SmartREST devices migrating to the MQTT Service. This format must not be used for new devices.

However, in both cases, the certificate’s CN must be:

  • CN == <deviceId>

Any certificate whose CN does not equal the device ID will fail authentication.

Only certificate-authenticated clients are affected; all other authentication methods remain unchanged.

Impact on existing MQTT clients

This is a breaking change.
Devices using certificates whose CN does not match the device ID will fail authentication once enforcement begins.

Customers should verify and update their certificate issuance processes during the grace period.

Please contact Cumulocity Support if you have any questions or concerns about these changes.

Roll-out plan

Info
Because the Cumulocity MQTT Service is currently in Public Preview, it is not subject to the standard 6-month compatibility notice period defined in the Cumulocity IoT Compatibility policy.

To allow a smooth transition, CN validation will be introduced no sooner than four weeks after this announcement.

New option for skipping SSO redirect and showing standard platform login

To support a broader range of authentication workflows, the Web SDK now introduces the skipSSORedirect query parameter. When enabled, this option skips the default single sign-on (SSO) redirect and displays the standard platform login interface instead. This enhancement provides greater control over authentication behavior, making it easier to support environments where direct platform login is preferred or where SSO is unnecessary.

November 28, 2025

Device dashboards now available in the Device Management application

Device dashboards, which were available in the Cockpit application before, are now also available in the Device Management application. This allows users to create custom tabs for their devices in the device details. Users can create template dashboards that automatically apply to devices of the same type, ensuring consistent views across their environment. When created, custom dashboards replace the default Info tab.

Improved global context styling

The global context styling was inconsistent and did not provide a good user experience. With this change, the global context styling has been improved to provide a more consistent and visually appealing look and feel across the application. Users will notice a more polished and professional design that enhances the overall usability and aesthetics of the global context elements.

One-time password in device registration form now hidden

In the device registration form, the one-time password was previously shown in clear text which posed a security risk. The form has been updated to use a password input field instead, so that the one-time password is hidden while typing. This change improves the security of the device registration process for all users.

Prevent blank screen when preferred language is stored in an invalid format

In some cases, the user’s preferred language was stored in an unexpected format in the user object (as an object instead of a string). The UI implementation expected a string and couldn’t handle an object. As a result, initializing of the UI application failed, and the user ended up on a blank screen.

This behavior has been adjusted and the application will initialize in these cases as expected.

November 26, 2025

Analytics Builder models now detect hierarchy changes in groups and assets

Analytics Builder models consuming data from device groups or assets now automatically detect hierarchy changes. This includes the addition, update, or deletion of devices, subgroups, and assets. The model dynamically adapts to these structural changes, ensuring continuous and accurate data processing.

For details, refer to Support for dynamic changes to group and asset hierarchy.

Info
This is also applicable to the Smart rules plugin.
November 20, 2025

Enhanced security for encrypted tenant options

With this change, the secure-tenant-options feature is enabled by default.

As previously announced, this security feature restricts the decryption of encrypted tenant options with the credentials. prefix. These options can only be decrypted by system users (such as bootstrap or microservice users) if they own the options.

Ownership is determined based on the category of the tenant option, in the following priority:

  1. The settingsCategory defined in the microservice manifest.
  2. The microservice’s context path.
  3. The microservice name.
Important

This change enforces the security model announced earlier in 2025. Microservices attempting to decrypt credentials.* options in categories not owned by them will receive static <<Encrypted>> values.

We recommend verifying microservices to ensure they are correctly aligned with their owned option categories and do not rely on accessing external credentials.

Fixed XSS vulnerability in custom tooltips

A cross-site scripting (XSS) vulnerability was discovered in the custom tooltip feature of the Echarts charting library. The vulnerability allowed attackers to inject malicious scripts into the tooltip, potentially compromising the security of applications using Echarts. This change fixes the XSS vulnerability by properly sanitizing and encoding user input used in custom tooltips in the new data point graph or data explorer.

November 19, 2025

New data explorer moved to General Availability

The new data explorer, which offers significantly improved performance, a modernized user experience, and expanded analysis capabilities, is now generally available (GA). For details on the enhancements, see the original Cumulocity announcement.

New Data point graph widget moved to General Availability

The new Data point graph widget, which offers extended customization options, enhanced visualization capabilities, and an improved user experience, is now generally available (GA). For more details on the enhancements, see the original Cumulocity announcement.

November 17, 2025

HTML widget moved to General Availability

The HTML widget has been migrated from AngularJS to Angular and is now generally available (GA). This migration brings enhanced security features and improved JavaScript support.

Key improvements:

  • Advanced security: The widget now includes strict HTML sanitization by default to protect against XSS.attacks.
  • Better JavaScript support: An advanced mode enables you to write custom web components for more sophisticated use cases.
  • Automatic migration: Existing AngularJS widgets will be automatically migrated to the new Angular implementation.

Important limitations:

  • Web components: Can only be written by Application administrators.
  • Disabling sanitization: The default strict sanitization can only be disabled by cloning the Cockpit application and adjusting the setting in the application configuration under Config > Application configuration.
November 13, 2025

Device status changes now immediately reflected in the navigator

When the status of a device was changed (for example, from the “Device status” widget), the status change was not immediately reflected in the navigator. With this change, the navigator now instantly displays the new device status. This change ensures that users have clear visibility into the current operational state of their devices.

Improved value normalization for Modbus registers

In the Device Management application, it is now possible to enter decimal values as minimum and maximum values for Modbus register value normalization. Previously, values like 655.1 were allowed in the UI, but only whole numbers were saved, which prevented exact device configurations. With this change, the application accepts floating point numbers in all relevant fields for Cloud fieldbus types, including Modbus. This ensures that register settings can match the capabilities of your devices and allows for more accurate value scaling.

OPC UA gateway local database upgrade

Together with the update to Java 17, the internal database of the OPC UA gateway has been changed from MapDB and ChronicleMap to RocksDB. This change enhances the performance and reliability of the gateway, ensuring compatibility with Java 17.

Important

Note that this update may require additional data migration or re-registration of device gateways. Refer to Upgrading from 1021 to 1022 gateway version in the documentation.

It is recommended to back up your existing local gateway data before proceeding with the update.

Some gateway properties related to the internal database have been removed and are no longer applicable:

  • gateway.mappingExecution.alarmStatusStore.maxEntries
  • gateway.mappingExecution.deviceTypeMappingStore.maxServerMappingsEntries
  • gateway.mappingExecution.alarmStatusStore.averageKeySize
  • gateway.mappingExecution.deviceTypeMappingStore.averageMappingsKeySize
  • gateway.mappingExecution.deviceTypeMappingStore.averageMappingsValueSize
  • gateway.mappingExecution.alarmStatusStore.maxBloatFactor
  • gateway.mappingExecution.deviceTypeMappingStore.maxMappingsBloatFactor

OPC UA gateway now runs on Java 17

Because Java 11 is outdated and no longer supported, the OPC UA gateway has been modernized and now runs on Java 17. This update enhances security and performance, ensuring the gateway remains reliable and efficient. Ensure that your environment is compatible with Java 17 to take full advantage of the improvements.

Important
Be aware that this update also replaces the internal gateway database and additional data migration or re-registration of device gateway may be required.

Refer to Upgrading from 1021 to 1022 gateway version in the documentation.

Asset property selector allows reordering of properties

The asset property selector is used to select properties to be displayed in various places in the platform. Previously, the order of the properties could not be changed. With this update, you can now reorder the properties in the asset property selector using drag and drop. This allows users to customize the order in which properties are displayed to better suit their needs and preferences.

Escaped template literals in legacy HTML widget code to avoid breaking

In legacy HTML widget code, template literals were not properly escaped which could lead to broken functionality in certain scenarios. This change ensures that all template literals are now correctly escaped.

Improved module federation plugin documentation and fixed loading of webpack styles from node_modules

The module federation plugin allows loading micro frontends from separate deployments into a shell application. Previously, the documentation for using external assets and stylesheets in micro frontends was incomplete and confusing. Additionally, there was an issue with referencing images from external stylesheets loaded through webpack from node_modules. The documentation has now been refactored to provide clearer guidance on using external assets and stylesheets in micro frontends. The issue with loading styles from node_modules through webpack has also been fixed. Micro frontends can now correctly reference images used in external stylesheets coming from node_modules. These changes improve the developer experience when using the module federation plugin to build micro frontend architectures.

Improvements to data grid column handling

Previously, columns that had been hidden and were enabled again sometimes did not appear in the grid. This issue has now been fixed so that columns always reappear as expected when enabled. Additionally, when resizing a column and releasing the mouse button outside the grid, the grid was still in resize mode, causing further unintended resizing. This behavior has been corrected so that resizing ends properly when the mouse button is released, even outside the grid area.

Smart rules (NEW) introduces support for fine-grained RBAC

The smart rules (NEW) feature now supports fine-grained Role-Based Access Control (RBAC) to manage user permissions more precisely.

For details, refer to Managing permissions to smart rules (NEW) instances.

Tailored offloading of inventory collection

When offloading the inventory collection, not only device-related data is offloaded, but also internal data. In order to confine the offloading to the data you need in your application, Cumulocity DataHub now introduces views over the inventory collection. These views let you tailor your offloading configuration so that only the data you are interested in is offloaded to the data lake, for example, only data related to devices or device groups.

November 12, 2025

DeviceService bundle for MQTT Service support in EPL Apps

EPL Apps now supports connecting to the Cumulocity MQTT Service with the new DeviceService API. This allows handling of device-native messages sent to the MQTT Service within Cumulocity EPL Apps. For more details, see Using Cumulocity MQTT Service.

For detailed configuration options and the API reference, see The DeviceService bundle.

This bundle replaces the deprecated Apama EPL API for the MQTT Service.

Info
The Cumulocity MQTT Service and The DeviceService features are currently in Public Preview and may be subject to change in the future.
November 10, 2025

Angular 20 upgrade

Starting with version 1023.0.0, the Web SDK has been upgraded to Angular 20. This update brings performance improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

Comprehensive upgrade documentation is available to help developers navigate the transition and update their codebases accordingly, see the Angular 20 upgrade documentation.

November 6, 2025

Fixed overlapping buttons in data grid header

In certain scenarios, the buttons in the data grid header were overlapping, making them difficult to use. This issue has been resolved by adjusting the layout and spacing of the buttons.

Password reset links now validated for a more suitable redirection

Previously, if users used a password reset link with an invalid token, they were redirected to the reset password view and got an error message on submit. To enhance the user experience, the login app now validates password reset links before allowing users to change their passwords. If the link token is valid and has not expired, the user is redirected to the reset password view to set a new password. If the link token is invalid or has expired, the user is instructed to request a new password reset link.

October 30, 2025

Enhanced granularity of measurement series aggregation interval

The measurement series endpoint has been enhanced. Note that there is no impact on the behaviour of applications currently using this endpoint.

We have introduced a new query parameter aggregationInterval which allows users to specify the aggregation interval for the returned measurement series data in a more flexible manner compared with the existing aggregationType parameter. The new parameter allows the specification of custom time intervals like 300s, 25m, 12h, 7d, and so on. The format of the parameter is an integer followed by a time unit, where the supported time units are: s (seconds), m (minutes), h (hours), d (days), w (weeks), M (months), q (quarters) and y (years). The integer value must be a positive number without leading zeros.

The new aggregationInterval parameter is preferred over the existing aggregationType parameter. When both are provided in a request only the aggregationInterval parameter will be considered and the aggregationType parameter will be ignored.

Caution
The full range of values for the aggregationInterval parameter is only supported for the timeseries persistence of measurements. For legacy persistence only intervals of 1d, 1h, 1m are supported, directly corresponding to the existing aggregationType parameter values. When using other interval values with legacy persistence, the system will default to the closest supported aggregation type, which may lead to unexpected results.

Measurement series aggregation improvements

A new query parameter aggregationFunction has been added to the measurement series endpoint. This parameter allows to specify aggregation functions to be calculated on the measurement series data per specified aggregation interval. The supported aggregation functions are: min, max, avg, sum, count, stdDevPop, and stdDevSamp. If the parameter is not provided, the functions min and max will be calculated by default.

Info
If you want to calculate multiple functions at once, you must specify the parameter multiple times, for example, aggregationFunction=min&aggregationFunction=max&aggregationFunction=avg.
Caution
This parameter can only be specified when an aggregation interval is provided using aggregationType or aggregationInterval parameter. Providing the aggregationFunction parameter without an aggregation interval will result in a bad request error. This parameter only takes effect for the timeseries persistence of measurements. For legacy persistence, the min and max functions are always calculated.

Dashboard manager available for preview in the Device Management application

The dashboard manager, which has already been available in the Cockpit application, is now also available for preview in the Device Management application. The dashboard manager brings more flexibility, consistency, and control over device dashboards.

Fixed data value timestamps in OPC UA operation responses and events

In previous OPC UA gateway versions, the source and server timestamps for data values were not serialized correctly to epoch time. This issue is now resolved in the OPC UA operation responses and data value events.

External ID of an asset now displayed in the Subassets page

A new field has been introduced in the Subassets page to display the External ID of an asset. If available, the External ID (from the c8y_ExternalId fragment) is shown below the Last updated field.

Refactored asset property list styles to avoid affecting device protocol creation

The asset property list component had a stylesheet that unintentionally made the device protocol creation modal for OPC UA non-functional. The stylesheet has now been targeted more precisely to the asset property list component only. This change ensures that the device protocol creation modal is no longer impacted by the asset property list styles and will function as expected.

October 24, 2025

Improved handling of suspended tenants in time series migration UI

In the time series migration UI, a new column named “Tenant status” has been added to indicate whether a tenant is active or suspended. The existing “Status” column has been renamed to “Migration status” to provide clearer context. For suspended tenants, no actions are now enabled. This enhancement allows administrators to easily identify suspended tenants during the migration process and prevents invoking invalid operations on them.

October 23, 2025

Angular 20 upgrade

In a future version of the Web SDK, we will update the Angular version used in the Web SDK to version 20. This update brings improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

To ensure a smooth transition to Angular 20 and help you to adapt your implementations, we will provide an upgrade documentation when this change happens. This documentation will help you navigate through the changes and update your codebase accordingly.

Application options passed via query parameters are now decoded correctly

Previously, application options that were provided via query parameters to web applications were only URI-decoded if the parameter contained valid JSON. With this change, these query parameters are also decoded if they do not contain valid JSON.

Fixed memory allocation issues during build process

The monaco-editor language support feature includes large worker files (around 1-10MB) which caused memory allocation problems for webpack during the build process. To address this, the build process has been updated to first build the monaco-related service workers separately before the main application. The built monaco worker files are then copied to the final build folder. This change resolves the memory allocation issues and ensures a successful build process.

Fixed widget resolver errors on typed dashboards for users with limited permissions

Previously, widgets on typed dashboards such as c8y_Device could display resolver errors for users with limited permissions. This occurred because permission checks were executed on the originally configured device before the context override was applied.

With this fix, widget configurations are now updated with the correct context device, replacing both device and __target fields in datapoint objects before resolvers are executed. This ensures that permission checks target the appropriate device and that widgets render correctly for all users.

Improved accessibility and focus management on bottom drawer

To enhance the user experience and comply with accessibility standards, the bottom drawer component has been updated. The focus management within the bottom drawer has been improved, ensuring that keyboard navigation works as expected. Users relying on assistive technologies can now properly interact with the bottom drawer and its contents. This change affects all applications using the bottom drawer component, providing a more inclusive and accessible user interface.

October 22, 2025

Deprecation of MQTT Service support in EPL Apps

Due to changes in the Cumulocity MQTT Service preview version, the current EPL API for the MQTT Service (com.apama.cumulocity.mqttservice) is now deprecated.

Use the DeviceService API from (com.apama.cumulocity.devices) instead, see The DeviceService bundle.

October 16, 2025

Added a new audit log type "Tenant certificate authority"

To enhance the audit log capabilities, a new audit log type called “Tenant certificate authority” has been added. With this change, users can now view and filter audit logs related to tenant certificate authority events directly from the audit logs browser in the Administration application. This improvement provides better visibility and tracking of certificate authority-related activities within a tenant, enabling administrators to monitor and analyze these specific events more effectively. You can find the list of logged event types in the user documentation.

Enhanced certificate management with ability to sign and issue certificates

The certificate authority feature previously released in Public Preview is now Generally Available (GA). It is available in CD versions 2025.348.0 and higher, and in the 2026 annual release.

The feature can be accessed in the Device Management application under Management → Trusted certificates, where the Add CA Certificate option is now available by default.

Cumulocity has been enhanced to function as a Certificate Authority (CA), providing the following capabilities:

  • Manage signing certificates
  • Accept Certificate Signing Requests (CSR)
  • Perform legitimacy checks, as defined by each tenant
  • Issue signed X.509 certificates trusted by the device tenant

For more details about this feature refer to Certificate Authority (CA).

Caution

Migration from Public Preview to General Availability - action required.

As part of the move to General Availability you need to remove all the devices you have registered under Public Preview and re-register them. All such devices will continue to be able to connect, but none of the other capabilities of the certificate lifecycle management will be available until they are re-registered.

Improved Java SDK support for external IAM tokens without tenant or username claims

When using external IAM JWT tokens, the authentication failed to correctly identify the tenant and user when the token did not include a tenant ID or username in its claims. With this change, the Java SDK now properly retrieves the tenant ID and username from the Cumulocity credentials context, ensuring correct identification and smoother integration with external identity providers.

Data points are pre-filled in the Measurements tab

With this change, the data explorer in the Measurements tab gets pre-filled with all available data points of the displayed device. The first one is active by default, all others are inactive. The Measurements tab in the device details uses the new data explorer if the Data explorer feature preview toggle is enabled.

Asset selector miller header size adjusted

The header size of the asset selector miller columns was not optimally aligned, leading to an inconsistent user experience. This change adjusts the header size of the asset selector miller columns to provide a cleaner and more consistent look and feel.

Auto-generated property keys now retain the original casing

Previously, when creating an asset property, the auto-generated key converted all letters in the label in the Asset properties page to lowercase and replaced special characters with underscores. Now, the key generation preserves the original letter casing from the label while continuing to replace special characters with underscores, ensuring case-sensitive property names.

Computed properties available in new properties selector

To enable developers to define custom properties with dynamic values, a new hookComputedProperty hook has been introduced. This hook allows defining computed properties that calculate their values on-the-fly based on other properties or external data, rather than storing the values directly on assets. Computed properties support context-aware applicability, allowing them to be selectively available based on the current context. They can also include optional configuration components for easy customization. Computed property values can be returned synchronously or asynchronously using promises or observables, providing flexibility in how the values are calculated and returned.

Enhanced Codex information architecture and developer experience

The Developer Codex has been redesigned with a clearer information architecture, offering step-by-step guides, core concepts, design best practices, and complete Web SDK documentation in a more discoverable and structured format. Whether you’re new to Cumulocity or an experienced developer, you’ll find faster paths to building effective IoT solutions, understanding platform architecture, designing better UIs, and connecting with the developer community.

The Developer Codes now includes

  • Simplified navigation – Reduced menu depth and introduced an intuitive 2–3 level, card-based structure for faster and easier content discovery.
  • Learning-oriented structure – Content is now organized to support a natural learning journey from fundamentals to advanced implementation:
    • First steps (formerly Quick start) – Get up and running quickly
    • Understanding fundamentals (formerly Core concepts) – Learn the platform architecture
    • Hands-on learning (formerly Common tasks) – Practice through real-world examples
    • Building UIs – Explore components and design system resources
    • Platform integration – Dive into advanced development and complex scenarios
  • Enhanced cross-references – Stronger linking between related topics to support knowledge building and continuous learning
  • Optimized learning flow – A progressive content structure that guides developers smoothly from beginner to expert level

See Cumulocity Developer Codex.

Feedback form added to preview features

To improve the quality and user experience of new features, a feedback form has been added for preview features in Cumulocity. When opening the Preview feature page, a feedback form is now displayed below each feature to provide thoughts, suggestions, and any issues encountered. This feedback will help shape and refine the features before they are officially released, ensuring they meet the needs and expectations of our users. Submitting feedback is optional and does not impact the usage of the preview features.

Fixed content security policy issue in SCADA widget

The SCADA widget had an issue that could trigger a browser warning about suspicious behavior in applications like Cockpit where the widget is used in dashboards. With this fix, users should no longer see browser warnings related to content security policy violations caused by the SCADA widget.

Fixed data point selector dropdown not being displayed correctly

The data point selector dropdown was not displayed in the foreground and was overlapped by other elements on the page. This issue has been resolved by adjusting the z-index of the dropdown. The data point selector dropdown will now always appear in the foreground when opened.

Skip password expiry check for users with SSO enabled

In the past, the password expiry date was checked for all users, regardless of their authentication method. With this change, the password expiry check is now skipped for users that have single sign-on (SSO) enabled for authentication. As a result, these users will no longer see a warning about their password expiring. This change improves the user experience for SSO users by removing an unnecessary warning message, while the behavior for non-SSO users remains unchanged.

October 9, 2025

Client-suggested identity provider for SSO login

To improve the single sign-on (SSO) login with multiple identity providers, a new idp_hint parameter has been added. Client applications can now suggest a preferred IdP (for example, idp_hint=google), allowing users to be redirected directly to that provider without manual selection.

Improved index utilization for time series measurements

The platform now uses database indexes more efficiently when storing and retrieving time series data. This reduces storage costs and increases performance.

Upgraded Jetty in Java SDK to version 12

The Jetty library version in the Java SDK was upgraded from version 11.0.24 to the most recent version 12.0.25. This version is compatible with the current Spring Boot version 3.5.5 in the Java SDK. No impact is expected on microservice code using standard Microservice SDK features. For microservices that use advanced customization of the Jetty server configuration we would advise referring to the official migration guide from Jetty 11.0.x to Jetty 12.0.x .

October 2, 2025

Deprecating the attachment of tenant options as headers to microservice requests

Until now, tenant options were attached to each microservice request. The microservice proxy added the tenant options to the request headers and forwarded the request to the respective microservice. For example, when creating a tenant option in a category that matches the application context path, the value has been passed to the microservice by the microservice proxy on the platform as a header (key => value).

This functionality is now deprecated. Tenant options will no longer be attached as headers to requests to microservices. The removal is planned for Q1 2026 in CD versions and in the 2027 annual release. The retrieval of the tenant options will remain possible through the endpoint <TENANT_DOMAIN>/application/currentApplication/settings.

This change is still disabled by default and can be enabled via a feature toggle core.ms-proxy.no-tenant-options-in-headers.

Important
In Q1 2026 for the CD versions and in 2027 for the yearly releases, this change will become mandatory.

MQTT Service Java client SDK is replaced by direct Messaging Service connections

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Feature preview
This feature is in Public Preview and may be subject to change in the future.

As previously announced, when the Cumulocity MQTT Service transitions from Public Preview to General Availability (GA), the MQTT Service Java client SDK will no longer be supported. Instead, microservices and external applications (clients) that need to exchange messages with MQTT devices connected to the MQTT Service will connect directly to the Cumulocity Messaging Service using the Apache Pulsar client protocol. Direct Messaging Service connectivity for MQTT Service clients is now available as part of the MQTT Service Public Preview.

All microservice and external application clients currently using the MQTT Service Java client SDK should migrate to the Pulsar client protocol as soon as possible. Detailed documentation of the requirements, conventions and best practices for connecting Pulsar clients to the Messaging Service is available, along with example code for an external client. Further examples will be published before the MQTT Service GA date.

Impact on clients using the MQTT Service Java client SDK

The MQTT Service Java client SDK is deprecated but will remain available and supported until the MQTT Service GA date. Clients can continue to use the Java client SDK in parallel with direct connections to the Messaging Service until then. MQTT messages published by connected devices will be delivered to both Java client SDK clients and directly connected clients. Messages published to an MQTT topic by either type of client will be delivered to connected devices that are subscribed to that topic, subject to device-level isolation constraints.

Allowed uploading any type of resource (fonts, images) to branding

Previously, only images could be uploaded to the branding section of the Administration application. With this change, it is now possible to upload any type of resource, such as fonts, to the branding section. This allows greater flexibility in customizing the look and feel of the Cumulocity platform to match your corporate branding.

September 26, 2025

Deprecation of MQTT Service Java client SDK

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

What changes?

The Cumulocity MQTT Service Java client SDK is deprecated. It is being replaced by direct connections to the Cumulocity Messaging Service using the Apache Pulsar client protocol.

How does this change impact you?

Developers of microservices and external applications currently using the MQTT Service Java client SDK should prepare to migrate their clients to use direct connections to the Cumulocity Messaging Service. The new connection method will be made available very soon as part of the MQTT Service Public Preview and will be announced separately.

Backwards compatibility

The MQTT Service Java client SDK is deprecated effective immediately but will continue to work and be supported until the MQTT Service reaches General Availability (GA). Once the new method is available, it can be used in parallel with direct connections to the Cumulocity Messaging Service during the transition period. The SDK will be completely removed and will no longer be supported once the MQTT Service reaches GA. We recommend migrating to the new approach as soon as it becomes available.

September 25, 2025

New parameter withSourceChildren added to Alarms and Events APIs

The Alarms and Events APIs have been improved with an additional parameter withSourceChildren. When set to true alarms and events for related source assets, devices and additions will also be included in the response. When this parameter is provided a source must be specified.

Asset properties selector allows adding custom properties

The asset properties selector is used to select properties for assets. With this change, it is now possible to add custom properties to the list of available properties in the asset properties selector. These custom properties are a combination of predefined properties and properties from the properties library. The custom properties are added as temporary items to the list and can be removed again. However, they are not permanently stored. This change allows users to have more flexibility in selecting and combining relevant properties for their assets.

Resizable grid component for improved widget configuration

To provide more flexibility when configuring dashboards, a new resizable grid component has been added. This component allows users to easily resize widgets on a dashboard by dragging the widget borders. Previously, widgets had a fixed size and position which limited the dashboard layout options. With this improvement, users have more control over the dashboard appearance and can create more customized views to better suit their needs.

September 18, 2025

Improved audit logs list performance

In the past, loading the audit logs list in the Administration application was slow, especially for tenants with a large number of audit log entries. This change results in a significant performance improvement. Users will now experience much faster loading times when viewing the audit log list, even for tenants with an extensive audit history.

Inventory API – change of the default value for the withChildren parameter

The default value of the withChildren parameter for the GET /inventory/managedObjects endpoint has changed from true to false. To continue receiving child assets, devices, and additions in the response, clients must explicitly include ?withChildren=true in their requests. This change aligns with previous announcements and aims to improve performance and response clarity. This behavior is controlled by the feature toggle core.inventory.without.children, which is enabled for all tenants by default. The toggle can be disabled, in which case the previous behavior is restored, where withChildren defaults to true unless explicitly set otherwise.

New parameter withSourceAdditions added to Alarms and Events APIs

The Alarms and Events APIs have been improved with an additional parameter withSourceAdditions. When set to true alarms and events for related source additions will also be included in the response. When this parameter is provided a source must be specified.

LWM2M service utilization of Notifications 2.0 tenant-level operation subscription

The LWM2M service is now utilizing Cumulocity’s Notifications 2.0 tenant-level operation subscriptions to retrieve device operations in real time. This enhances the service’s overall performance. Note that when this mode is active, device push connections will no longer appear as active in the Info tab of the device details. This is because they are now managed through tenant-level subscriptions rather than device-level subscriptions.

New SmartREST template for setting device profiles with software type

A new static SmartREST 2 response template (ID 531) has been added for device profile operations with software type. This template extends the existing functionality by including the software type as the third value in the software 5-set. The template triggers independently when at least one software element in the software list contains a type, regardless of ASM support or subscription. The existing 527 template will continue to trigger alongside the new template where applicable.

Added identity provider hint parameter support to OAuth2 login flow

To streamline the single sign-on experience, the OAuth2 login flow now supports an identity provider hint parameter. When users access the login page with this parameter, they are automatically redirected to their designated authentication provider based on the hint. This eliminates the need for manual identity provider selection during login, simplifying the authentication process for users. Existing user logins are unaffected, and the identity provider selection page remains available when no hint is provided.

Asset properties selector component available in the Web SDK

The asset properties selector component is now available in the Web SDK, providing a comprehensive interface for managing and displaying asset properties in a hierarchical tree structure. This component offers various customization options for both display and behavior, enabling a seamless experience when interacting with asset properties. It can already be used in the HTML widget to copy property paths that can be incorporated into templates and later used to display the matching property of the selected asset.

Increase of max request header size

To allow the usage of larger headers in requests, the property server.max-http-request-header-size has been increased to 24KB in the Microservice SDK. Previously, the value was 8KB.

Maps now display devices across all nested group levels

Previously, only direct child devices of a group were displayed on a map when that group was selected. Now, the map shows all devices within the group hierarchy, including those in nested subgroups. This change provides a complete view of the device hierarchy and geographic distribution for a group, without the need to manually drill down into each nested level.

Updated Monaco and Ace editor highlighting colors

To improve the readability when working with the Monaco and Ace editors in the platform, the selection highlighting colors have been updated. This improvement applies to all areas where the Monaco and Ace editors are used, such as Administration (Branding and Localization), Cockpit (HTML widget, dashboard import/export), and Device Management.

September 16, 2025

Removal of TrendMiner offloading mode

The TrendMiner mode as a configuration option in measurements offloading is no longer supported as the integration of Cumulocity DataHub with TrendMiner was discontinued.

September 11, 2025

Returning information on all managed object ancestors when withParents=true

Using the Inventory API parameter withParents=true now results in returning basic information (ID, type, name) on all ancestors of managed objects instead of being limited to only 3 levels of hierarchy. Notice that inventory roles are not taken into consideration when collecting information on ancestors, so basic information on all of them will be returned.

In addition to improving the API usability the performance of requests using the withParents=true parameter has also been improved.

Improved the reliability of the OPC UA gateway's scheduled tasks

To improve the overall reliability of the OPC UA gateway, an issue with the internal schedulers has been fixed, which, in rare cases, led to periodic tasks being stopped in case of failures such as a network outage. This affected for example the collection of data from the OPC UA server as well as the delivery of measurements, events and alarms to the platform. The issue has been addressed by introducing a revised error handler.

Aligned Add asset dialog with device assignment from Subassets view

Previously, when assigning devices in the Add asset dialog, child devices could be viewed by using a toggle button. Now, that toggle has been removed, and the button is directly displayed beside the parent device on the right side of the grid, similar to the device assignment in the Subassets view.

September 9, 2025

EPL Apps utility Util.formatTime produces date-time string in ISO8601 format

The behavior of the Util.formatTime has changed in the Cumulocity utilities bundle for EPL Apps. This utility now produces a date-time string in ISO8601 format (yyyy-MM-dd'T'HH:mm:ss.SSS). This is a breaking change for any code relying on the previous yyyy/MM/dd HH:mm:ss format. We recommend updating your code to handle the new standard format.

Example:

  • Previous: 2025/09/01 12:38:30Z
  • Current : 2025-09-01T12:38:30.123Z
September 4, 2025

Change of the default value of revert parameter for time series measurements

The default value of the revert parameter for time series measurements has been changed to true. As a result, time series measurements are sorted from newest to oldest by default.

This change affects the following API endpoints:

  • GET /measurement/measurements
  • GET /measurement/measurements/series

If you require results in ascending order, you must explicitly set the revert parameter to false in your queries.

The default value for legacy measurements remains false.

Delete child references from parents of deleted attachment

When an attachment is deleted, the references to this attachment are now also removed from the parent managed objects. This ensures that no leftover references are pointing to non-existent managed objects.

Provisioned certificates data grid extended

To provide a better overview of provisioned certificates, the Provisioned certificates data grid has been extended. A new “Valid from” column has been added, which shows the start date of the certificate’s validity. Additionally, the expiration highlight styles in this data grid have been aligned with the ones already used in the Trusted certificates view for a more consistent user experience. These changes enable users to view the full validity period of certificates at a glance and quickly identify those that are about to expire.

Added confirmation message for group deletion

Previously, while deleting a group, the radio buttons were displayed without a message. Now, the appropriate messages are correctly displayed beside the radio buttons.

Fixed broken edit button in Asset Properties widget when displaying nested properties

Previously, when adding a nested property containing a dot in its name to the “Asset properties” widget configuration, the edit button was broken, preventing users from modifying the asset properties. This issue has been resolved. The “Asset properties” widget correctly displays nested properties, and the edit button remains functional, enabling users to edit asset properties as expected.

Fixed issue with saving in-product information setting

Previously, changes to the “Enable in-product information and communication” setting were temporary and reset after reloading the application. This issue has been resolved. The setting is now saved permanently and persists after application restart.

Long event or alarm texts no longer overflow in the data point graph or data explorer tooltips

In the data point graph or data explorer, long event or alarm texts were overflowing from the tooltip and were not fully visible, making it difficult for users to read the complete event information. This issue has now been fixed. The tooltips for long event or alarm texts are properly displayed without any overflow. This improvement enhances the usability and readability of alarm and event information in the chart view.

New data points plugin to manage data points on assets

The dtm-plugin extension introduces a data points plugin that enables linking and management of device data points on asset instances. It provides a visual interface for linking device measurements to asset contexts, supports data point templates, and allows adding custom data points to link expected data points before the data arrives, enriching asset metadata through structured associations.

Note that the plugin uses DTM APIs that are currently in Private Preview. To enable them, contact the Product team via product support to have the required feature flags activated.

System theme applied correctly across the platform

In some cases, the system theme was not being applied correctly across all areas of the platform. This issue has been resolved. Users will no longer experience inconsistencies in the platform’s appearance and can expect a cohesive look and feel based on their selected system theme.

August 28, 2025

Adjusted expiration warning highlighting for non-CA trusted certificates

Previously, the Trusted certificates page applied the same expiration warning rules for both CA (Certificate Authority) and non-CA certificates. However, CA and non-CA certificates have different validity periods. With this change, non-CA certificates will now start being highlighted with a warning only when they are less than 90 days away from expiration.

Preview of the new Measurements tab based on the data explorer

To provide a more powerful and flexible way to explore device measurements, the Measurements tab in the device details has been updated to use the new data explorer. This change allows users to interactively analyze device data more intuitively and efficiently. The new Measurements tab replaces the old one if the Data explorer feature preview toggle is enabled.

Smart rules (NEW) plugin now available in Public Preview

The Smart rules (NEW) plugin is now available in Public Preview.

While traditional smart rules provide a fixed set of predefined templates for common scenarios, the new generation of smart rules removes these limitations by enabling you to create fully customized rules tailored to your specific requirements using the capabilities of Analytics Builder in Streaming Analytics. This allows you to create and manage rule instances directly from asset, group, and device contexts within applications such as Cockpit, Device Management, and Digital Twin Manager.

Feature preview
The “Smart rules (NEW)” feature was previously named “Analytics rules”. It is in Public Preview and may be subject to change in the future.

For more details about the smart rules (NEW) plugin, refer to Smart rules (NEW) plugin.

Dark theme available for tenants with default branding

As previously announced, a new version of the default branding will be rolled out to make the dark theme available for users. By default, the light theme remains selected, but users can switch between themes via the right drawer.

Tenants having a customized branding will not be affected by this change. If you would like to provide a dark theme as part of your custom branding, you can do so via the branding manager.

We highly recommend upgrading any web apps based on the Web SDK to version 1022.8.0 or higher for best compatibility and experience with the dark theme.

Fixed data point graph and data explorer chart timestamps for English US locale

In some scenarios, when the English US language was selected in the platform, the data point graph and data explorer chart timestamps were incorrectly displayed, showing a 24-hour format instead of a 12-hour format. This issue has been resolved. The chart timestamps are now correctly shown when using the English US locale. This change ensures a consistent user experience across different locales.

Groups can no longer be added under assets in the Subassets page

On the Subassets page in the Cockpit application, the Add Group button was visible in the details of an asset, allowing groups to be added under assets incorrectly. This issue has been resolved. Groups can no longer be added as a child of an asset.

New OpenAPI documentation plugin to browse and test Digital Twin Manager APIs

A new plugin, OpenAPI documentation, has been added to the dtm-plugins extension. It provides interactive documentation for the Assets and Definitions APIs, including details on required permissions. The plugin allows users to browse, visualize, and test API resources directly from the product documentation without needing to implement any logic.

Note that these APIs are currently in Private Preview. To enable them, contact the Product team via product support to have the required feature flags activated.

Smart rules (NEW) plugin now available in Public Preview

Feature preview
The “Smart rules (NEW)” feature was previously named “Analytics rules”. It is in Public Preview and may be subject to change in the future.

While traditional smart rules provide a fixed set of predefined templates for common scenarios, the new generation of smart rules removes these limitations by enabling you to create fully customized rules tailored to your specific requirements using the capabilities of Analytics Builder in Streaming Analytics. This allows you to create and manage rule instances directly from asset, group, and device contexts within applications such as Cockpit, Device Management, and Digital Twin Manager.

For more details about the smart rules (NEW) plugin, refer to Smart rules (NEW) plugin.

August 27, 2025

Public Preview of internal implementation changes

As a part of continuous modernization of the Cumulocity platform we have introduced some internal implementation changes that enhance the reliability and scalability of Cumulocity. The new implementation is currently the default on https://eu-latest.cumulocity.com/ and available on all other instances as a Public Preview. The new implementation will go to GA and become the default on all SaaS systems by the end of September 2025. The purpose of this announcement is to invite customers who wish to take advantage of this update to participate in the Public Preview.

Enabling the new implementation is on a per tenant basis and requires your role to include ADMIN permission for “Tenant management” (API string = ROLE_TENANT_MANAGEMENT_ADMIN) and use of the Feature Toggles REST API:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/cluster-subscriptions.mongo-persistence/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active": true }'

To disable the feature, issue the same request with: { "active": false }.

The expected behaviour is that all platform features and/or functionality continue working as before. After enabling the feature we recommend observing active Realtime Notifications 1.0 subscriptions. Should you experience any change in behaviour please deactivate the feature toggle and open a support ticket to inform Cumulocity Support about the incident. If we’re informed in advance about your schedule of enabling the toggle for a particular tenant, then we can also more closely observe the patterns of traffic of that tenant with the tools we have available.

Strict validation of unit values in the measurement fragments

In future releases, the Cumulocity platform will strictly validate unit values in measurement fragments. If a measurement fragment contains a unit value that is null or an empty string, the platform will ignore such unit values and won’t persist them. The measurement itself will still be stored, but without the invalid unit. This change improves data quality and consistency. Review your integrations and make sure that all measurement fragments use valid, non-empty unit values or omit the unit field entirely.

August 21, 2025

Bulk revocation of provisioned device certificates

Previously, provisioned device certificates could only be revoked individually. With this change, it is now possible to select multiple provisioned device certificates in the data grid and revoke them in bulk. This simplifies the process of revoking multiple certificates.

Improved querying applications by user with dropOverwrittenApps

When querying applications by user with dropOverwrittenApps set to true, all applications that are overwritten by the tenant will now be filtered out from the result. The filtering includes applications to which the user is not subscribed.

For example: User U is subscribed to the hosted application A from the parent tenant, and that application is overwritten on the tenant of user U by application A1. Before this change, the user received a list of applications including A. Now, the list neither includes A nor A1.

This change makes the API behavior consistent with the /application/applications/<application_id>/manifest endpoint.

Inventory roles selection disabled if roles cannot be changed by SSO user

In the user details, if for the SSO access mapping the option “Roles selected in the rules below will be reassigned to a user on each login and other ones will be cleared” was selected, the inventory roles mapping for an external user could be changed in the dropdown list, but could not be saved, which was misleading. Now, if a user is not able to change the inventory roles mapping, the dropdown is disabled.

Smart rules section in the Status tab of custom microservices only displayed if Smartrules microservice is available

In the Status tab of custom microservices, the smart rules section was always visible, even if the Smartrules microservice was unavailable, causing alerts to be displayed. This issue has been resolved. The availability of the Smartrules microservice is now checked, and the smart rules section is only displayed if the Smartrules microservice is available.

Support for deleting time series measurements by ID

Support for deleting measurements by ID when using enhanced time series support has been added. Previously, deleting by ID was only possible for legacy measurements.

DELETE /measurement/measurements/{id}
Info
Deleting measurements by ID is not optimal. We recommend deleting measurements by query or by applying retention rules for better performance.

Details on device parameters available on the Parameters tab

On the Parameters tab in the device details, details on device parameters are now provided. Next to the parameter description and current value, users can view the history of value change operations, as well as the history of value change events.

Fixed missing breadcrumbs in the Alarms tab

In the device details, the breadcrumbs navigation was not shown when viewing the Alarms tab of a specific device. This issue has been resolved. The breadcrumbs are now correctly displayed in the Alarms tab.

Improved permission handling for Trusted certificates page

To enhance the user experience, the permission handling for the Trusted certificates page has been improved. Users with read-only permission will now see some UI elements blocked instead of having them active but not working. Users with admin permission will continue to have full access to the page. Users without any permissions to the Trusted certificates page will no longer see the corresponding menu item in the user interface. This change provides a clearer and more consistent experience for users based on their assigned permissions.

New version of internal query engine

Cumulocity DataHub now leverages version 25.2 of Dremio as its internal query engine. The new Dremio version features in particular improvements to memory management with advanced spilling as well as performance gains. Various other enhancements relate to enriched SQL functionality, workflow improvements in the user interface, and security fixes.

August 14, 2025

Dashboards are now only saved when edited

To improve performance and reduce unnecessary API calls, dashboards on the Info tab in the device details are now only saved when they are edited by the user. This change does not impact the dashboard functionality.

Devices now properly assigned to groups on EST protocol registrations

Device registrations using the EST (Enrollment over Secure Transport) protocol were handled differently from non-EST registrations internally. This change unifies the way device registrations with and without the EST protocol are processed. It fixes an issue where devices were not assigned to the group selected by the user during registration when using the EST protocol.

Improved highlighting of expiring trusted certificates and added renewal option

In the Trusted certificates page in the Device Management application, visual cues have been improved to highlight expiring certificates. Additionally, a new option has been introduced that allows users to directly renew a CA certificate from the UI if it is approaching its expiration date. These enhancements help users to monitor and manage the lifecycle of their trusted certificates more effectively.

Enabling the data point graph preview feature no longer breaks the visualization of data points

Previously, when enabling the data point graph preview feature, this could cause rendering issues with the associated Device and Communication widgets in the Device Management application, impacting the display and usability of related data. This issue has been fixed. Visualizing data points with the data point graph preview feature enabled now works seamlessly.

Migrated additional Angular components to standalone mode

As part of our ongoing efforts to improve the modularity and maintainability of the Web SDK, we have migrated more components to operate in standalone mode. This change involves updating the architecture and dependencies of these components. Users should not experience any functional differences, as the migrated components will continue to operate as before. Developers using the Web SDK are now able to import more components directly without having to import the whole module.

The angular modules provided by the Web SDK will continue to exist. A future release might deprecate them in favor of using the standalone components directly.

Removed deprecated getNamedDashboardOrCreate from context-dashboard service

The deprecated getNamedDashboardOrCreate method has been removed from the context-dashboard service in the Dashboard API. In the future, the getDashboard() call must be used instead.

August 7, 2025

MQTT Service device isolation is enabled by default

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Introduction

As previously announced, when the Cumulocity MQTT Service transitions from Public Preview to General Availability (GA), the MQTT Service will enforce device isolation. MQTT devices will be able to subscribe to any topic, but will not automatically receive messages published to that topic by other devices. Microservices will be able to explicitly route messages between different devices. In effect, each MQTT client identifier will have its own private topic space that is not shared with other clients, but can be accessed by microservices.

Info
Device isolation is enabled by default for any tenant using the MQTT Service for the first time.

Tenants already using the MQTT Service can continue to use the deprecated tenant isolation approach, but should migrate their applications to work with device isolation as soon as possible. A feature toggle is available to allow these tenants to switch between isolation models while updating their applications.

We are making this change to align the MQTT Service with the behavior of the existing Core MQTT capability, and to improve out-of-the-box security for typical IoT applications where direct inter-device communication is not required.

Device versus tenant isolation

The difference between the two isolation models can be explained using a simple example.

Assume that a tenant has two MQTT clients connected to the MQTT Service, with client identifiers publish-client and subscribe-client, and that subscribe-client has subscribed to the topic my-topic.

Then, publish-client publishes a message to my-topic:

  • If the tenant is using device isolation, subscribe-client will not receive that message.
  • If the tenant is using tenant isolation, subscribe-client will receive the message.

A microservice can receive all messages published by all MQTT clients, and choose whether to forward messages to other clients.

Impact on MQTT devices and microservices connecting to the MQTT Service

This is a breaking change and affected applications must be updated to continue working after the GA version of the MQTT Service is deployed.

This change affects any application where MQTT devices exchange messages by publishing and subscribing to the same topics. In particular it affects applications where a Cumulocity microservice connects to the MQTT Service using the MQTT protocol to exchange messages with connected MQTT devices.

Existing microservices that are affected by this change should not immediately migrate to the existing Java client SDK, as this will not be supported in the GA version. Instead, these microservices should wait for the new MQTT Service API to be released and migrate directly to this API. Details of the new API and how to use it in microservices will be announced soon.

Switching between isolation models

Tenants can switch between the device and tenant isolation models using the mqtt-service.tenant.isolation feature toggle.

The feature toggle is set to true by default for tenants that are already using the MQTT Service, to maintain the deprecated tenant isolation behavior. These tenants can use the feature toggle to switch between isolation modes while developing and testing their migration to device isolation.

For all other tenants, the feature toggle is set to false and should not be changed.

To set the feature toggle to false, the following HTTP PUT request must be sent to the tenant. This example uses the curl command, but any equivalent tool that can send HTTP requests can be used:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/mqtt-service.tenant.isolation/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active":false }'

Where <TENANT_DOMAIN> is the domain name of the tenant, for example my-tenant.cumulocity.com, and <AUTHORIZATION> is a Base64-encoded HTTP Basic Authentication token for the tenant, constructed as described in the API documentation.

A similar request can be sent to set the feature toggle back to true:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/mqtt-service.tenant.isolation/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active":true }'

Response interval value set correctly when toggling maintenance mode

In certain scenarios, the response interval for devices could be incorrectly set when toggling maintenance mode, leading to unexpected behavior and potential issues. This change fixes the problem by ensuring that the response interval always has a valid value.

Alarms and events now linked to the correct device source

In some cases, alarms and events were incorrectly associated with the wrong device when using device type dashboards. This issue has been resolved. Alarms and events are now correctly linked to the originating device, ensuring accurate tracking and analysis.

August 6, 2025

Dark theme available for tenants with default branding

A new version of the default branding will be rolled out to make the dark theme available for users. By default, the light theme remains selected, but users can switch between themes via the right drawer.

Tenants having a customized branding will not be affected by this change. If you would like to provide a dark theme as part of your custom branding, you can do so via the branding manager.

We highly recommend upgrading any web apps based on the Web SDK to version 1022.8.0 or higher for best compatibility and experience with the dark theme.

July 31, 2025

Improved the readability and clarity of the data point graph

In the data point graph, the y-axis labels could overlap with the axis lines in some cases, making them difficult to read. Additionally, when the Force merge all datapoints to a single axis option was enabled, the unit was not displayed. This change fixes both issues. Y-axis labels no longer overlap with the axis lines, and the unit is now displayed properly when all data points are merged to a single axis, improving the readability and clarity of the data point graph.

Upgraded Angular and Web SDK versions

The Digital Twin Manager application has been upgraded to Angular 19.2.14 and Cumulocity Web SDK 1022.4.17, bringing improvements in performance, security, and platform compatibility. This upgrade is largely seamless with no UI changes; however, custom applications using dtm-plugins will need to update to the latest plugin versions when migrating to the latest Web SDK to ensure compatibility.

For more details, refer to the announcement

July 28, 2025

OPC UA device gateway with thin-edge.io MQTT Forwarding

Starting from the opcua-device-gateway version 1021.9.0, the OPC UA device gateway can forward data from OPC UA servers to thin-edge.io MQTT topics instead of sending it directly to Cumulocity. The primary use case is to utilize thin-edge.io also for data forwarding when running in thin-edge.io mode. While doing this, the OPC UA device gateway bundles multiple collected measurement/event series into a single measurement/event when they are from the same device protocol and use cyclic reads.

July 21, 2025

MQTT Service will enforce device isolation

Introduction

The Public Preview release of the Cumulocity MQTT Service currently enforces tenant isolation. An MQTT device (client) connected to the MQTT Service can subscribe to any topic, and receive messages published by other devices to that topic on the same tenant. That is, there is a tenant-wide topic space shared by all the MQTT devices using the tenant.

When the MQTT Service transitions from Public Preview to General Availability (GA), the MQTT Service will enforce device isolation. An MQTT device will still be able to subscribe to any topic, but it will not automatically receive messages published to that topic by any other MQTT device. However, microservices will be able to explicitly route messages between different devices. In effect, each MQTT client identifier will have its own private topic space that is not shared with other clients, but can be accessed by microservices.

We are making this change to align the MQTT Service with the behavior of the existing Core MQTT capability, and to improve out-of-the-box security for typical IoT applications where direct inter-device communication is not required.

Impact on MQTT devices and microservices connecting to the MQTT Service

This is a breaking change and affected applications must be updated to continue working after the GA version of the MQTT Service is deployed.

This change affects any application where MQTT devices exchange messages by publishing and subscribing to the same topics. In particular it affects applications where a Cumulocity microservice connects to the MQTT Service using the MQTT protocol to exchange messages with connected MQTT devices.

Microservices that are affected by this change should not immediately migrate to the existing Java client SDK, as this will not be supported in the GA version. Instead, these microservices should wait for the new MQTT Service API to be released and migrate directly to this API. See the next section for more details of the new API.

Impact on microservices using the MQTT Service client SDK

The existing Java client SDK for the MQTT Service will not be supported in the GA version. It will be replaced by a new language-neutral API giving direct access to the Cumulocity Messaging Service topics used by the MQTT Service. Details of the new API and how to use it in microservices will be announced soon.

Microservices that are affected by device isolation, and that are not currently using the client SDK, should wait for the new API to be available before starting their migration activity.

Microservices that are already using the Java client SDK may continue to do so until the new API is available.

Roll-out plan

To allow customers to plan a managed migration to the new device isolation behavior, it will be rolled out in several phases, as described below.

Dates refer to when the change will reach the eu-latest environment; other environments will be updated later following the usual CD deployment schedule.

Phase 1: Introduction of device isolation

On or soon after August 4, 2025:

  • Tenants currently using the MQTT Service will continue to have tenant isolation by default.
  • Tenants not currently using the MQTT Service will have device isolation enabled if they later start to use the MQTT Service.
  • A public feature toggle will be introduced, allowing tenants to be switched between tenant and device isolation under user control.

Phase 2: Migration during Public Preview

  • Tenants starting to use the MQTT Service for the first time should develop their applications to work with device isolation.
  • Tenants already using the MQTT Service should update their applications to work with device isolation. The feature toggle will allow these tenants to switch between isolation modes while developing and testing changes to their applications.

Phase 3: General Availability

The General Availability date for the MQTT Service is not yet confirmed, but will be no earlier than December 1, 2025.

When the MQTT Service becomes Generally Available:

  • All tenants will be switched to use device isolation.
  • Existing applications that have not migrated by this time may not function correctly.

Further announcements will be published before the start of phases 1 and 3.

July 17, 2025

Software and firmware repository items can now be added without URL

It is now possible to add software and firmware repository items without a URL. When uploading software and firmware versions, a new option for the binary is available called Provided. If this option is selected, the device is expected to resolve the binary itself.

Linear gauge widget now handles datapoint template min & max values stored as strings

Previously, the “Linear gauge” widget in the Cockpit application did not handle cases where the datapoint template for the displayed measurement stored the min and max values as strings instead of numbers. This caused the widget to display an error in such cases. With this change, the “Linear gauge” widget has been adjusted to properly handle min and max values provided as strings in the datapoint template. The widget will now convert those string values to numbers internally and display the linear gauge without errors. This improvement makes the “Linear gauge” widget more resilient and compatible with a wider range of datapoint template configurations.

Property label updates now reflected in widget view

Previously, in the Asset properties widget, when the label of the selected property was updated in the configuration, the changes were not reflected in the widget’s view. This issue has now been fixed, and label updates are properly displayed in the widget view after saving.

Python plug-ins can be run without sub-interpreters or with dedicated GILs

EPL plug-ins written in Python now have configurable isolation modes. This allows a plug-in to be loaded to use the main interpreter rather than a sub-interpreter, which is required for certain common third-party libraries that don’t support sub-interpreters, such as numpy. You can also run plug-ins with even more isolation, and use a separate Global Interpreter Lock (GIL) to the parent interpreter. This means that two different plug-ins can be executed in parallel.

Additional information can be seen in the corresponding Apama change log.

Smart rules (NEW) plugin now available in Public Preview

Feature preview
The “Smart rules (NEW)” feature was previously named “Analytics rules”. It is in Public Preview and may be subject to change in the future.

While traditional smart rules provide a fixed set of predefined templates for common scenarios, the new generation of smart rules removes these limitations by enabling you to create fully customized rules tailored to your specific requirements using the capabilities of Analytics Builder in Streaming Analytics. This allows you to create and manage rule instances directly from asset, group, and device contexts within applications such as Cockpit, Device Management, and Digital Twin Manager.

For more details about the smart rules (NEW) plugin, refer to Smart rules (NEW) plugin.

July 10, 2025

Delete button for retention rules only shown for users with ADMIN permission

In the Administration application, the delete button for retention rules was previously shown for all users regardless of their permissions. With this change, the delete button is now only displayed for users who have ADMIN permission. This ensures that only authorized users can delete retention rules, providing better control and security over data retention management in Cumulocity.

External applications included in application access list

Previously, the application access list in the Administration application only showed hosted applications, but not external applications. This change now includes external applications in that list as well. This allows administrators to review and manage access rights for external applications in the same way as for hosted applications.

Fixed company name validation on tenant creation

Previously, there was an issue with the company name validation during tenant creation. It was not possible to create a tenant with a 2-letter company name, and the validation error was confusing. The validation has been fixed and users can now successfully create tenants with 2-letter company names without encountering any issues.

Suspend and activate button title in the subtenant list now updates correctly after toggling

In the subtenant list, the title of the suspend and activate button did not change after toggling the button, which could lead to confusion about the current state. This issue has been fixed. The button title now correctly updates to reflect the action that will be performed when clicking the button, that is, it shows Activate when the subtenant is currently suspended, and vice versa.

LWM2M real-time subscription improvement

Fixed an issue that could rarely lead to incomplete real-time subscriptions and exceptions in the LWM2M agent logs.

Alarm list widget now again shows child device alarms correctly

In a new design of the “Alarm list” widget, child device alarms were no longer displayed by default. This issue has been fixed. The new “Alarm list” widget now shows child device alarms correctly.

Fixed branding color variables for buttons and display of disabled action bar items

Buttons were not using the correct variables defined in the branding. Additionally, disabled action bar items were not properly indicated. The buttons now use the correct branding color variables based on the configured branding, and the disabled action bar items are now visually identifiable as disabled.

Fixed disabling c8y-select component in multi-select mode

The c8y-select component had an issue where the disabled option did not work when using the multi-select mode. This change fixes the issue so that setting the disabled input to true now properly disables the c8y-select component while in multi-select mode. This impacts any applications or pages using the c8y-select component in multi-select mode where the disabled option must function correctly.

Users with SSO redirect and without application access no longer run into an infinite loop

Previously, if users had SSO and SSO redirect enabled but did not have permission to access any application, they ran into an infinite loop after trying to log in. This issue has been fixed. If users have no application access, they are now redirected to the login page, and an error is shown.

July 3, 2025

Introducing previous measurements values

Automated persistence for measurement values under the c8y_PreviousMeasurements fragment has been introduced. This allows for storing and querying the second most recent measurement values based on arrival time.

For details on how to enable the feature and how it works, refer to Managing data.

Breaking change: The Inventory API c8y_PreviousMeasurements fragment was added to the restricted properties list.

The c8y_Previous Measurements fragment is reserved for internal system use only and may not be used by external users.

Any request containing restricted properties will have those properties ignored by the platform — they will not be applied or saved.

Example:

If a user sends a request like the following::

{
    "name": "testDevice",
    "owner": "device_654321",
    "c8y_IsDevice": {},
    "c8y_PreviousMeasurements": {
        "c8y_Temperature": {
            "value": 25.4,
            "unit": "C"
        }
    }
}

With this release, the c8y_PreviousMeasurements fragment in the request will be ignored and will not be saved.

Inventory search with wildcards becomes case-insensitive

To improve the user experience when searching the inventory by a particular property, the Cumulocity platform changes its behavior for searches by filter with wildcards. Queries using the query language with wildcards now behave case-insensitive. Previously, such queries were processed with a case-sensitive strategy.

Example request:
GET /inventory/managedObjects?query=name+eq+'my-device*
can now return devices with names equal 'my-device01' or 'My-Device02'.

Queries without a wildcard character remain unchanged and use the exact match for optimal performance. This means that the example request:
GET /inventory/managedObjects?query=name+eq+'My-device01'
will not return a device with a name equal 'my-device01'.

Paginated lists for dynamic access and inventory role mappings in SSO configuration

To improve the performance of the single sign-on (SSO) configuration page in the Administration application, pagination has been introduced for the lists of dynamic access mappings and inventory role mappings. This change addresses potential performance degradation or page crashes that could occur when displaying a large number of mappings all at once. The introduction of pagination ensures a smoother user experience and better overall performance when configuring SSO settings with extensive mapping lists.

New device tab listing all device parameters

To provide an overview of the device parameters, a new Parameters tab has been added to the device details. This tab lists all parameters reported by the device in a table format, including the parameter title, key, value and type.

New SmartREST template for creating parameter update events

A new SmartREST template has been added. Using the template ID 408, it is now possible to create device parameter update events. The events created always have the type c8y_ParameterUpdateEvent. The template has a change detection functionality, so that events are only created if the given state in the event was not already known at the time.

Assign devices view is now rendered correctly

The bottom drawer of the Assign devices view was opened twice, which led to a misalignment of the component and made it unusable. With this fix, the drawer only opens once, and the selection elements are correctly usable.

Data point table widget now correctly displays maximum and minimum values

In the “Data point table” widget, when displaying both the minimum and maximum values for a data point was selected, the maximum values showed the minimum values instead. This issue has been fixed. When selecting this setting, the maximum values are now shown correctly.

Fixed filter dropdown max-height in data grid component

In the data grid component, the filter dropdown had an issue with its max-height, causing it to be cut off in certain scenarios. This issue has now been resolved by setting an appropriate max-height.

Migration of audit log

The audit log of the Cumulocity DataHub application has been moved to the audit log of the Cumulocity Administration application, which provides central access to the tracking of all user operations.

June 26, 2025

Latest measurement values can be stored as part of a device managed object

Support of automated persistence of measurement values under the c8y_LatestMeasurements fragment, which has previously been introduced as a preview feature, is now generally available. If a measurement is created with a series that matches the configuration the device managed object is updated with the last series sent to the platform.

For details on how to enable the feature and how it works, refer to Managing data.

Custom columns grid with nested asset properties available

To provide more flexibility in displaying asset data, it is now possible to configure custom columns in the asset grid which can include nested properties. For example, if an asset has a nested property “c8y_Hardware.model”, it can now be displayed in a separate column in the grid. This allows users to view asset data based on specific nested properties without the need to view the full asset details.

Fixed issue in bulk device operations delay

Previously, when a bulk device operation was resumed after a failure scenario, the mechanism scheduled the remaining operations from the original scheduling date. This meant that any configured delay was not respected but the operations were created as quickly as possible. This has been corrected by scheduling the remaining operations with the configured delay from the time the operation is resumed.

Fixed multiple creation of bulk device operations

The mechanism that ensures that scheduled bulk operations are resumed after failure scenarios was unintentionally picking up ongoing bulk operations. This resulted in multiple operations being created for individual devices in some scenarios. This issue has been resolved by adjusting the conditions under which a bulk operation must be resumed.

List of asset properties available when creating custom columns

In data grid views, when adding a custom column, you can now search through a list of asset property definitions when the Digital Twin Manager (DTM) asset API is available. The column header and path are filled in automatically. If the DTM service cannot be reached, the application falls back to the previous dialog, so existing workflows continue to work.

OPC UA server address space scan enhancements

New advanced settings have been introduced in the OPC UA server configuration in the Device Management application, which provide the option to enable auto-scan with either full or partial address space scan capabilities. Refer to Connecting the gateway to the server for more details. This feature requires version 1021.7.0 or higher of the opcua-device-gateway and opcua-mgmt-service components.

Data grid component now supports display of hierarchical data

The Data grid component has been updated to support hierarchical data structures. This enables a tree grid view where rows can be expanded to reveal nested child rows.

Key features include:

  • Expand/collapse functionality for parent rows
  • Indented row rendering for visual hierarchy
  • Support for server-side and client-side data

This update enables clearer representation of parent-child relationships in datasets, such as device hierarchies and asset hierarchies.

Virtual scroll now always shows all items in a list

In places where virtual scroll was implemented, such as the “Data points table” widget, it could happen on rare occasions that not the entire list was loaded. This issue has now been resolved. Virtual scroll now always shows all list items.

Python used by Streaming Analytics upgraded to version 3.13

The version of Python used in Cumulocity Streaming Analytics has been upgraded to version 3.13. Customers with extensions containing Python code should test that they are still working as expected. Virtual environments used to provide additional Python libraries may need to be recreated. If possible make these changes before the corresponding build gets rolled out to production SaaS environments.

See online resources such as the Python What’s New for detailed information about breaking changes and new features in Python 3.13. Additional information can also be seen in the corresponding Apama change log.

June 19, 2025

Custom properties section hidden for users without custom properties

If a user does not have any custom properties, the custom properties section is no longer displayed in the user details but hidden instead.

Alarms no longer triggered for existing LWM2M objects

The LWM2M agent incorrectly triggered alarms when devices reported data for LWM2M objects that already had a DDF representation on the platform. This issue has been fixed. Alarms are now only triggered when the reported objects are not present on the platform.

Improved operations list reload functionality in bulk operations details

In the details section of a bulk operation in the Bulk operations page, the list of single operations was reloaded too frequently for bulk operations with a short delay interval between the single operations. This made interaction with the page difficult when single operations were created. To avoid this, a throttling of 30 seconds has been introduced. Bulk operation details are still updated in real-time (when activated), but the operations list is only reloaded every 30 seconds (or rarer if the delay time is higher). Additionally, the operations list has been replaced with a data grid, which improves navigation through large lists of single operations.

Removed Redundant "LWM2M Device Send" event in VERBOSE logging

The “LWM2M Device Send” event was logged alongside the “Received Message” event, although both events contained identical information. This update removes the redundant “LWM2M Device Send” event. Only the “Received Message” event now logs the resource data received from the LWM2M service in the VERBOSE logging level.

Asset table widget can now display last measurements of assets

The “Asset table” widget previously only supported displaying the last measurements of devices. With this change, the “Asset table” widget now also supports displaying the last measurements of assets, providing a more comprehensive overview. This allows users to view the latest measurement data for both devices and assets in a single table widget, improving the usability and convenience of the “Asset table” widget for monitoring and analyzing asset and device data.

Fixed display of multiple branding navigator items on non-enterprise tenants

In the past, non-enterprise tenants could see multiple Branding navigator items in certain situations, which was confusing and not the intended behavior. With this change, non-enterprise tenants will now always only see a single Branding item as expected.

Fixed missing translations in right drawer

The bookmarks section in the right drawer was previously not correctly translated, showing the default English text instead of the localized language. This issue has been resolved. The bookmarks section will now display the correct translations based on the user’s selected language.

Fixed SSO login issues after upgrade

For tenants using single sign-on as a default login method, after an upgrade from the y2024 release (or earlier) user logins might fail. The reason is that older versions used authorization tokens for subdomains (for example, .test.eu-latest.cumulocity.com) while newer versions use domain-specific tokens (test.eu-latest.cumulocity.com, without dot at the beginning). Having both in place was causing a conflict. Now, if an old cookie is detected, cookies are cleared with logout and users can log in again without issues.

Map widget provides option to fit all assets on a map

The “Map” widget has been enhanced with a new feature that allows to fit all assets on a map. This includes either all selected assets for the widget or all available assets if none are explicitly selected. This functionality is available in two places:

  • Widget configuration: Allows to adjust the map’s center and zoom level to include all relevant assets.
  • Widget view: Allows users to fit all assets into the view during normal dashboard usage.

This feature improves the usability by ensuring all tracked assets are visible with a single action.

Measurements are now exported correctly in data exports

Previously, when exporting data, measurements without units contained only headers while omitting the actual measurement values. This issue has been fixed, ensuring complete data export including both headers and values.

New option for limiting the number of decimal places in data point graph and data explorer

For the new data point graph and data explorer, which can be enabled via the preview feature toggle, a new configuration option has been added that allows for limiting the number of decimal places. Users can now set a maximum number of decimal places, making it easier to interpret measurement values at a glance.

Truncated data alert is now correctly displayed for the data point graph

In some cases, users may have data outside the selected time range that gets truncated. Previously, the truncated data alert was not shown for the data point graph when global time context was enabled. This has been improved, and the alert is now properly displayed.

June 16, 2025

Angular 19 upgrade and standalone components

Starting with version 1022.0.0, the Web SDK has been upgraded to Angular 19. This update brings performance improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

Comprehensive upgrade documentation is available to help developers navigate the transition and update their codebases accordingly, see the Angular 19 Upgrade Guide.

To ensure a day one compatibility of your plugins with applications based on the v1022 Web SDK, you should add the standalone flag to all components/pipes/directives of your plugins. You do not have to migrate your components/pipes/directives to standalone: true, you can also set them to false. You just need to ensure that you’ve set the standalone flag. If the standalone flag has not been defined, Angular v19 will default to standalone: true instead of standalone: false, which can break your components/pipes/directives.

June 12, 2025

Re-upload of previous microservice versions

Previously, uploading older microservice versions was restricted to development builds that contained the -SNAPSHOT suffix in the version. This constraint has now been removed.

It is now possible to upload older versions of a microservice, provided that the uploaded image matches the one already stored in the Docker registry.

For microservices in development with the -SNAPSHOT suffix in the version, there are no restrictions on the image content. Older versions with the same or different image content can be deployed.

This improvement allows you to rollback to a previously used version of the microservice. So far it was necessary to either delete the microservice application and re-upload the earlier version, or rebuild and re-upload the same binaries with an incremented version number.

June 5, 2025

LWM2M device real-time operation subscriptions no longer break during core upgrades

When the core platform was upgraded/restarted, this caused the LWM2M service no longer having an active real-time subscription for operations. It required a LWM2M new registration or the expiration of an operation subscription time-to-live duration to recover from this state. This issue has been resolved. Now, in such cases, the real-time session will be properly resubscribed on the new core node, ensuring continued data flow and improved reliability.

Response interval value deleted when clearing the required interval input

Clearing the Required interval input on the Info tab in the device details now correctly deletes the c8y_RequiredAvailability fragment, so that the fragment is only present when an interval is explicitly configured.

May 29, 2025

Added filter option for DataHub entries to the audit logs list

A new filter option for entries created by DataHub has been added to the audit logs list. Previously, the audit logs list did not allow filtering of DataHub-related entries specifically.

Remote access tab only shows supported protocols

Previously, the Remote access tab in the device details showed all available protocols, even if the device did not support them. This could lead to confusion for users trying to remotely access devices.

With this change, the Remote access tab only shows the protocols that are actually supported by the selected device. This makes the interface clearer and improves the user experience by providing accurate information on each device’s remote access capabilities.

If no supported protocols are specified, all options will still be shown to maintain compatibility. Any invalid or duplicate entries in the list will be ignored.

Find more information on specifying supported protocols via MQTT static templates.

Special characters are now correctly escaped in the device registration process via EST

Previously, during device registration via the EST (Enrollment over Secure Transport) protocol, special characters like ; or " contained in the one-time password were not correctly escaped when sent to the server. This issue has been fixed. Now special characters are properly escaped and the correct value is received by the server and used in the further registration process.

Reliable notifications and smart rule resiliency features now available as Public Preview

The Streaming Analytics microservices now supports reliable delivery of notifications and resilience of smart rule state against scheduled restarts. These features are in Public Preview and can be enabled with the feature flags streaming-analytics.messaging and streaming-analytics.resilience.smartrules. These features are enabled for all tenants on the eu-latest cluster now, and will be automatically rolled out to production zones over the next few weeks. Tenant administrators can override the default on a given environment by setting the feature flags appropriately. The messaging feature must be enabled in order to enable the resilience feature.

May 22, 2025

Fixed the verification process for partial certificate chains used in device authentication

Previously, when a device used a certificate to authenticate with the platform, authentication failed if the device did not provide the full certificate chain up to the root certificate. This issue has now been resolved, allowing devices to authenticate using a partial chain which does not include the root certificate. Authentication happens with only the leaf certificate if the immediate issuer is present in the platform.

Improved plugin uninstall and upgrade reliability for revoked plugins

Previously, if a plugin version was removed but the package remained accessible due to newer versions, the plugin would enter a “revoked” state. Attempting to uninstall such plugins appeared successful in the UI, but the plugin was not actually removed. With this fix, uninstallation of revoked plugins is now processed correctly and accurately reflected in the UI. Users can now reliably remove revoked plugins and upgrade to newer, available versions.

Messaging Service monitoring and management feature available as Public Preview

Feature preview

This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

To determine whether the feature is available for your tenant, open the Administration application and navigate to Ecosystem > Microservices. If you see the Messaging-management microservice subscription for your tenant, the feature is already available to be activated as described below. Otherwise, please contact product support to request the microservice subscription for your tenant.

The Messaging Service, the messaging component embedded in the Cumulocity platform, has been enhanced by a new monitoring and management feature which allows users to monitor and manage the usage of the Messaging Service resources. This new feature is currently in Public Preview. You can activate it in the platform UI via the Manage preview features option in the user menu. Find out more about the feature in its user documentation.

New toggle to exclude late-arriving measurements from latest values

A new toggle, strongConsistency, has been introduced. When set to true, it prevents late-arriving measurements from being shown as the most recent data for a device, regardless of their actual arrival time.

For details on how to enable it and how it works, refer to Managing data.

Notifications 2.0 SDK 'deleteByFilter' method is deprecated

The Notifications 2.0 SDK deleteByFilter() method takes a NotificationSubscriptionFilter parameter that specifies which subscriptions should be deleted. Previously, it was possible to create a filter that would result in more subscriptions being deleted than was intended.

To resolve this issue, extra safeguards have been added to reject filters that should not be processed by the underlying platform API. In addition, the deleteByFilter() method has been deprecated and clients should use the existing delete(), deleteById() and deleteBySource() methods instead.

HTTP proxy support for the OPC UA gateway

Support has been added for operating behind an HTTP proxy. This enhancement allows the Cumulocity OPC UA gateway to be used in environments where an HTTP proxy is required, improving flexibility and compatibility with various network configurations.

Improved CA certificate delete confirmation message

To prevent accidental deletion of CA certificates, the delete confirmation message has been improved. Previously, the confirmation message was not clear enough about the consequences of deleting a CA certificate. Now, the message explicitly states that devices enrolled with this certificate will no longer be able to connect the platform.

Improved confirmation message after device registration via EST

Previously, the confirmation message displayed after the device registration via EST (Enrollment over Secure Transport protocol) was the same as in case of the regular device registration, which was confusing. With this change, the displayed message is specific for devices registered via EST, that is, they can directly request the signed certificates and use them to authenticate to the platform without any further manual acceptance process.

New SmartREST template for reading the platform version

A new SmartREST template has been added. Using the template ID 600, it is now possible to read the platform version with SmartREST, in order to evaluate API interface compatibility and expected request behaviour.

Date-time picker automatically corrects invalid hour and minute values

The date-time picker component now automatically corrects invalid hour and minute values to “00”.

Fixed missing smart rule translations

Missing translations in smart rules related views in Web SDK based applications have been fixed.

Improved device registration modal and fixed input group array

The modal size for device registration has been adjusted to better fit the content. Additionally, the input group array has been fixed. This improves the user experience when registering devices.

Increased number of visible exports in the exports list

Previously, the exports list on the Export page was limited to displaying only the first 100 exports. To provide users with a more comprehensive overview of their data exports, the number of visible exports in the list has now been increased to 200. This change allows users to see and manage a larger number of their data exports directly in the list without the need for additional navigation or filtering.

New feature preview functionality

The preview features functionality allows you to manage all features that are currently in Public Preview in one place. With a simple toggle interface you can easily discover, enable, and experiment with upcoming functionality. This helps you stay ahead of new developments while providing our team with valuable insights to improve the final product through your early feedback.

To access the preview features toggle interface, click the user icon at the top right and select Manage preview features in the right drawer.

Resolved issues with branding manager which prevented customizing the branding

Previously, the branding manager was in certain cases unable to locate the public-options application on the Management tenant, preventing the user from customizing the branding. This issue has now been resolved.

Incorrect assignment operator usage now triggers an error

In earlier versions of EPL Apps, using = instead of := resulted in a warning. This has now been promoted to an error. Loading will be rejected until the line is fixed or removed.

May 15, 2025

Branding can now be imported for tenants without existing branding

Due to an issue, it was previously not possible to import a branding for a tenant if no branding was configured for that tenant yet. This change now allows importing branding packages via the Administration application even if the tenant does not have any branding configured. This makes it easier for users to set up branding for new tenants by directly importing an existing branding package without the need to manually create a branding configuration first.

Resolved issues in LWM2M composite write and binary data read operations

The LWM2M composite write operation successfully updated multiple resources on the device, but incorrectly displayed the values as a single consolidated resource object. This issue has been fixed. Additionally, an issue with the incorrect representation of binary data and core link data on logging event texts, shown when logging verbosity is increased for the device, has been fixed.

Dropdown menus now always fully visible and accessible

If a dropdown menu cannot be displayed below an element (the default) due to space limitations, it is usually displayed above the element following the drop-up directive. Previously, the drop-up directive did not check if there was sufficient space above the element, which could result in the menu being partially obscured or not visible at all. With this change, the drop-up directive now checks for available space before deciding whether to display the menu above or below an element. This improves the user experience by ensuring that dropdown menus are always fully visible and accessible.

Improved subassets handling with multiple tabs in DTM plugins

Previously, integrating the subassets plugin from Digital Twin Manager with other tab-based plugins led to errors during tab switching. This issue has been resolved. The path to access subassets has been changed from /asset/:id/subassets to /group/:id/subassets.

Improved the message in the confirmation dialog when deleting assets

Previously, the confirmation dialog for deleting assets lacked clarity, which could lead to accidental deletions. This has now been improved to ensure better user understanding.

Updated subassets and asset tree routes to avoid context issues in DTM

The subassets and asset tree contexts have been changed from /asset/:id to /group/:id to align with the Digital Twin Manager´s registered context. The previous asset/:id context was not recognized globally, leading to issues such as broken tab switching, especially when external plugins were integrated. Switching to the group/:id context ensures reliable routing, consistent context handling, and seamless plugin compatibility across the platform.

Changes to the development workflow on Windows for Apama Analytics Builder Block SDK and Apama EPL Apps Tools

The Apama Analytics Builder Block SDK and Apama EPL Apps Tools are no longer supported natively on Windows environments.

The new approach is to use the community-maintained Apama Extension for Microsoft Visual Studio Code which provides a productive development environment for writing EPL, including a workflow for starting Apama application on Windows using a Dev Container using WSL (Windows Subsystem for Linux).

Alternatively, in the short term, it is possible to continue using Apama 10.15 and the rel/y2025 branch of the respective repositories; however, customers are encouraged to transition to the new approach when possible.

May 12, 2025

Separate login application now manages all authentication flows

Starting with version 1022.0.0, the Web SDK no longer includes built-in login functionality in each application. Instead, a separate login application now manages all authentication flows. Web applications developed using Web SDK version 1022.0.0 or later will automatically redirect users to this standalone login application whenever authentication is needed.

This change benefits customers creating their own UI applications, as they no longer need to implement custom login flows. They can simply redirect users to the new login application. The login page has also been redesigned as part of this update, improving its usability and visual appeal.

Note: Customers who embed the UI within an iframe and require in-iframe login may need to modify their implementation to support this new login flow.

May 9, 2025

MQTT Service Public Preview release

Feature preview

This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

To determine whether the feature is available for your tenant, open the Administration application and navigate to Ecosystem > Microservices. If you see the Mqtt-service microservice subscription for your tenant, the feature is already available. Otherwise, please contact product support to request the microservice subscription for your tenant.

MQTT Service subscription

The Cumulocity MQTT Service is a new MQTT endpoint implementation for Cumulocity that provides the following benefits:

  • Sending and receiving arbitrary payloads on any MQTT topic.
  • User-provided microservices can send and receive messages on MQTT topics, and map messages to and from the Cumulocity data model.
  • Multi-tenant support with full tenant isolation.
  • Bi-directional TLS including authentication with X.509 client certificates.

The MQTT Service does not replace the existing Core MQTT capability of Cumulocity that supports sending device data already in the Cumulocity domain model directly into the platform. The new capability provided by the MQTT Service allows for easier integration of MQTT devices that cannot use the Cumulocity domain model. It also supports more flexible communication patterns between devices, applications, and the Cumulocity platform, controlled by user-provided microservices.

Note that in Public Preview, MQTT Service clients within a tenant are not isolated from one another. That is, an MQTT client can subscribe to topic(s) that another client is publishing on, and receive the messages sent by that client. Full device isolation will be available in the first General Availability release of the MQTT Service.

For more details about this feature refer to the MQTT Service documentation.

May 8, 2025

Added option to provide a readme file for particular plugins in a package

Previously, only one readme file could be added to a package - by storing the README.md file in the package root folder. With this update a readme file can be created for each plugin within a package, thus providing users with a better experience and placing the information closer to the plugin.

To add the readme for the plugin, the README.md file must be provided in the plugin codebase (the recommended place is the same folder as the exposed plugin module) and thereadmePath property (indicating the path to this file) must be added to the exports. For example:

{
  name: 'Example widget plugin',
  module: 'WidgetPluginModule',
  path: './src/app/widget/widget-plugin.module.ts',
  readmePath: './src/app/widget/README.md',
  description: 'Adds a custom widget to the shell application'
}

When the package is deployed, the readme can be viewed in the package details, the package versions view (readme for specific version), the installed plugins list and the available plugins list.

Option added to view change logs of deployed packages

It is now possible to view change logs of deployed packages. These change logs can be viewed in:

  • A Change log tab in the package details
  • A change log section in the package version details
  • In the Update plugin dialog for installed plugins

Allow pre-filling of single device registration form via query parameters

To simplify the device registration process, the single device registration form can now be pre-filled with device information. When a user opens the device registration dialog, the form fields are automatically populated with available device details from the query parameters, reducing manual input. This change improves the user experience by saving time and effort during device registration.

Add asset button and Import asset button now work properly

Previously, when the asset navigator was installed in the Digital Twin Manager, the Add asset button was unresponsive and the Import asset button was missing. These issues have now been resolved and both buttons work properly.

Allow pointer events on read-only text areas

Previously, read-only text areas had the CSS property pointer-events: none which prevented any pointer interactions such as clicking, selecting text or scrolling. With this change, the pointer-events: none CSS property has been removed from read-only text areas. This allows users to interact with read-only text areas using pointer events like clicking to focus or scrolling the text area content if it overflows, thereby providing a more intuitive and consistent user experience.

Date-time picker now respects user locale and includes missing localizations

The date-time picker component did not respect the user´s locale setting, resulting in missing localizations. This issue has been fixed. Users will now not only see the date-time picker in their preferred language and format but every date and time displayed in the UI.

Dropdown menu maximum width adjusted

The maximum width for dropdown menus has been adjusted to accommodate the date picker.

Improved date range picker styling

This change adjusts the styling of the date range picker in the UI to improve the alignment and spacing of the elements.

Issue resolved where users might access and/or change another user's settings

Previously, users could access or change another user’s settings. This issue has been fixed. Now only the user that is currently logged in can read/write its user preferences.

Radial gauge has been improved with better visualisation and more customizations

The radial gauge visualization has been migrated to a new charting library, offering a broader selection of built-in gauge presets for quick and easy use. Additionally, an advanced section has been introduced, enabling users to fine-tune and customize gauges to perfectly match their data visualization needs.

May 7, 2025

MQTT Service support in EPL Apps

EPL Apps now has support for connecting to Cumulocity MQTT Service. This allows handling of device-native messages sent to the MQTT Service within Cumulocity EPL Apps. For more details see Using Cumulocity MQTT Service.

Info
The Cumulocity MQTT Service feature is currently in Public Preview and may be subject to change in the future.
April 29, 2025

Cumulocity Streaming Analytics will switch to a new “26.x” version of Apama engine

Cumulocity Streaming Analytics is switching to the new “26.x” version of the Apama engine. The 26.x release is focused around the real-world needs of Cumulocity customers, delivering a simplified and more relevant feature set.

The new version includes some changes that may affect customers with their own custom EPL or connectivity plugins, as well as those who build and test analytics applications using their own installation of Apama (for example, on Windows).

We expect most applications to be unaffected. However if you use custom Python or Java plugins in an Analytics Builder Block that you have uploaded to the apama-ctrl microservice, it is important to prepare for these changes immediately, so you are ready when the update is rolled out to SaaS environments over the coming weeks.

If you use Apama in a Cumulocity custom microservice there is less urgency, but you should plan to switch to the new (latest or 26.X.X) Apama base image at some point over the next year.

Release Changes

Windows and Eclipse support

Installation of the Apama engine is no longer supported on Windows, and the Apama plugin for Eclipse is removed.

  • Instead, to develop Apama applications on Windows (for example to build EPL Apps, execute the Block SDK, or build PySys tests for your application), instead of Eclipse you can use the community-maintained Apama Extension for Visual Studio Code.
  • It is also possible to install Apama using our Debian Package Repository into a Windows Subsystem for Linux (WSL) instance of Debian.

Docker base image update

The Apama Docker images now use Debian 12 (Bookworm) for the base image instead of Red Hat UBI. These images can be used for both development and as a base image for custom Cumulocity microservices. The names and tags of some Docker images have changed, as has the directory where Apama is installed. If you need to install any extra packages on your image, the command line for doing so will need to be changed for Debian.

Supported operating systems changes

For users who need to install Apama onto a Linux machine without Docker for development purposes, the installation options have changed. Debian 12 (Bookworm) is now the only supported distribution for installing Apama, and the Apama packages must be installed from our Debian Package Repository as we no longer publish .zip or .tar.gz packages. Support for installing Apama on Red Hat Enterprise Linux and Ubuntu is removed. In addition to the usual x86 packages, support for ARMv8 (64-bit) has been added and replaces ARMv7HF (32-bit).

Java upgrade

This release of Apama comes with Java 17 instead of Java 11. All Java code executed within the correlator is now executed with Java 17, so if you have any custom EPL plugins or connectivity plugins you should recompile them with Java 17 and test that they are still working as expected. If you use Java in a block uploaded to an apama-ctrl microservice, any required changes should be performed immediately so you are ready when the update is rolled out to SaaS environments.

See online resources such as the JDK release notes for detailed information about breaking changes and new features in Java 17. Some applications may be affected by the different locale data provided in this version of Java, or may require updates to third party library dependencies, but we expect that in most cases Apama plugins will continue to work without changes.

Python upgrade

Python will soon be upgraded from 3.9 to a newer version (likely 3.13). We advise customers using Python to review What’s New in Python to familiarize themselves with any changes that may affect their application. If Python is being used within a block uploaded to an apama-ctrl microservice, any required changes should be performed immediately so you are ready when the update is rolled out to SaaS environments.

References & feedback

For more information on these and other changes, review the Apama Change Logs. If you have any questions, feel free to post to the streaming-analytics-apama tag on the Cumulocity Tech Community.

April 28, 2025

Enhanced security for encrypted tenant options

A new security feature has been introduced to restrict the decryption of encrypted tenant options with the credentials. prefix. These options can now only be decrypted by system users (such as bootstrap or microservice users) if they own the options.

Ownership is determined based on the category of the tenant option, in the following priority:

  1. The settingsCategory defined in the microservice manifest.
  2. The microservice’s context path.
  3. The microservice name.

This change is currently disabled by default and can be enabled via a feature toggle secure-tenant-options through the API.

Important
In Q4 2025 for the SaaS instances and in 2026 for the yearly releases, this restriction will become mandatory. We strongly recommend reviewing your microservices now to ensure compatibility with the upcoming enforcement. This gives microservice developers time to adapt, especially if their services depend on reading credentials.* options in categories not owned by the microservice.
April 24, 2025

Completed migration of Properties, Custom properties, and Limits tabs to newer version of Angular

The Properties, Custom properties, and Limits tabs in the tenant details have completely been migrated to a newer version of Angular. They still work in the same way from the user perspective, with two exceptions:

  • The External reference field and the Enable Gainsight product experience tracking checkbox have been moved into the Properties tab.
  • The device storage limitation has been moved into the Limits tab.

Fixed reload icon spinning indefinitely in x509 certificates tab

In certain situations, the reload icon in the x509 tab in the device details spinned indefinitely, indicating that a reload operation was still in progress even though it had already completed. This issue has now been resolved. The reload icon stops spinning as soon as the reload is finished, providing clear feedback to the user.

Proof of possession section for tenant CA certificates now hidden

In the trusted certificate details, the Proof of possession section was previously also displayed for tenant CA certificates even though it is not relevant for this type of certificate. With this change, the Proof of possession section is now hidden for tenant CA certificates. This improves the user experience by removing irrelevant information from the view.

Retention rules now also run for suspended tenants

The retention scheduler has been updated to execute retention rules for tenants with the status SUSPENDED in addition to active tenants. This makes sure that data cleanup and storage rules still apply, even if a tenant is not currently active.

c8y_IsDevice fragment now added to Modbus, Profibus, CANBus, and CANopen devices

In the past, Modbus, Profibus, CANBus, and CANopen devices created in the Device Management application were missing the c8y_IsDevice fragment which identifies them as devices in the inventory. This change adds the c8y_IsDevice fragment to all such devices created going forward. This improvement makes such devices easier to find and filter in the inventory when querying for devices. Existing Modbus, Profibus, CANBus, and CANopen devices in the inventory are not modified and will still be missing the parameter.

Improved certificate list in device details

The X.509 certificates list in the device details has been improved by the use of a data grid, which provides a better overview and responsiveness on various screen sizes. This change improves the user experience when working with X.509 certificates of a device.

Improved LWM2M device request timeout settings

The LWM2M agent now provides enhanced control over request timeout settings for LWM2M devices. The timeout value must always remain within the minimum and maximum limits defined in the global LWM2M microservice properties. Invalid values, such as zero or negative numbers, can no longer be entered. If the agent detects a value below the minimum threshold, it will automatically adjust it to the allowed minimum. Similarly, any value exceeding the maximum limit will be corrected to the allowed maximum.

Resolved auto-observe and validation configuration issue for certain resources

Resources that were supposed to have auto-observe in the LWM2M device protocol configuration activated could not be properly set up. The auto-observe fragment was either always set to false or completely missing from the object. As a result, automatic observation was not executed. The auto-observe fragment is now correctly set in the object, resolving the issue and ensuring that automatic observation works as expected. In addition, we addressed an issue where the empty validation rules configuration is saved for the resource. This caused issues for validations of write operation values before sending it to a LWM2M device. This issue has been resolved to ensure proper validation behavior.

Simplified logging event levels in LWM2M device configuration

The logging event levels have been updated to simplify the LWM2M device configuration. Previously available logging levels were: NONE, LIFECYCLE, TRAFFIC, FIRMWARE, and VERBOSE. This has now been simplified to NONE, LIFECYCLE, and VERBOSE. TRAFFIC and FIRMWARE log events have been merged with VERBOSE. This configuration will be automatically updated in the device managed object.

X.509 certificates tab is now only shown for applicable devices

To prevent user confusion, the x509 tab in the device details is now only shown if the device contains at least one x.509 certificate. The behavior of the certificates tab itself remains unchanged and it will continue to display any associated x.509 certificates for a device as before.

Advanced translations via Monaco editor for improved editing experience

The Cumulocity platform provides capabilities to manage translations for the UI in various languages. Previously, the translation editor had limited capabilities for editing multiple translations at once. With this change, the Monaco editor can now be used when editing translations in the Administration application, allowing to bulk edit or import translations easily.

Assign child devices while creating a group

To simplify the process of creating device groups, it is now possible to assign child devices directly when creating a new group. Previously, child devices had to be assigned separately after the group was created. This change streamlines the workflow and saves time for users who manage large numbers of devices. Existing device groups are not affected by this change.

Fixed an issue with the navigation after adding a new dashboard

After creating a new dashboard, when navigating to another menu item in the navigator, the navigation was cancelled. This issue has been fixed and the navigation works properly again.

Fixed navigator node hover color

In the navigator, the hover state now properly inherits both background and text colors from the active state, showing the expected color when hovering over nodes and thus ensuring visual consistency.

Last occurrence of an alarm now properly shown in alarm details

In the alarm details view, the Last updated field, which usually shows the time of the last alarm occurrence, was empty. This issue has been fixed. Moreover, the field has been renamed to Last occurrence.

Prevented unintended device group creation while searching for devices

Pressing Enter while searching for devices to add to a new group, created this group instantly instead of performing the search. This issue has been fixed. Enter now correctly executes the search when typing device names.

Redirecting to the last viewed tab on a dashboard now works properly

Previously, when navigating back to a dashboard, the application did not always redirect the user to the last viewed tab on that dashboard, which was confusing and inconvenient. This issue has now been fixed. With this change, users will always be redirected to the last tab they were viewing on a dashboard when returning to it, providing a more consistent and seamless navigation experience within the application. This improvement applies to all existing and new dashboards.

TOTP QR code is properly displayed during setup

New users (or users with the TOTP secret revoked in the user settings) were not able to set up TOTP because the QR code was missing. This issue has been fixed, and the QR code is again visible so that users can set up TOTP.

April 22, 2025

Dremio upgrade with security fix

Dremio has been upgraded to address recent security vulnerabilities in the Dremio software used as part of Cumulocity DataHub:

  • CVE-2025-2298
  • CVE-2025-30065
April 17, 2025

Enforcing Microservice API version 2 in Cumulocity SaaS instances

As published earlier in the change logs, the removal of the Microservice API version 1 has now been implemented. If not done yet migrate your microservices to API version 2 as soon as possible. Refer to Microservice migration to API version 2 in the user documentation to understand how to accomplish this.

Enhanced certificate management with ability to sign and issue certificates

Feature preview

This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

To determine whether the feature is enabled, go to the Device Management application and navigate to Management → Trusted Certificates. If you see Add CA Certificate in the top-right corner of the page, the feature is enabled. If it is not enabled, please use the Feature Toggles REST endpoints or contact Global Support to enable the feature.

Cumulocity has has been enhanced to function as a Certificate Authority (CA), providing the following capabilities:

  • Manage signing certificates
  • Accept Certificate Signing Requests (CSR)
  • Perform legitimacy checks, as defined by each tenant
  • Issue signed X.509 certificates trusted by the device tenant

For more details about this feature refer to Certificate Authority (CA).

April 16, 2025

Deprecation of loadConfigComponent in favor of new multi-section configuration

What changes?

Cumulocity introduces a new hookable multi-section concept for the widget configuration, and as a result, the loadConfigComponent method of the widgetHook is deprecated.

How does this change impact you?

Widget developers should start using the hookWidgetSection hook to add configuration to their own or existing widgets. This new approach supports multiple configuration sections to be displayed, offering greater flexibility and organization of widget settings.

Backward compatibility

The loadConfigComponent method continues to work in short term and will add a section named “Settings”, but it will be removed in an upcoming major release. We recommend migrating to the new approach as soon as possible.

Support for cross application dashboard import/export functionality

In an upcoming version a new Import/Export tab will be added to the dashboard settings, which allows to export dashboards to JSON files, import dashboards from previously exported JSON files and edit the dashboard in an editor. This new functionality allows to copy dashboards across applications. It is provided as a “self-optional” plugin to the Cockpit application, thus it has to be installed explicitly. The dashboard setting component will be refactored to use a secondary router outlet in order to make these type of views hookable. This approach allows to hook a new tab to a particular outlet. For example:

hookTab(
    [
        {
          label: gettext('Import / Export'),
          icon: 'input-output',
          priority: 5,
          path: [
            {
              outlets: {
                'dashboard-details': 'advanced'
              }
            }
          ],
          tabsOutlet: 'dashboardTabs'
        }
      ];
),
hookRoute([
  {
    path: 'advanced',
    loadComponent: () => import(...),
    outlet: 'dashboard-details',
    context: ViewContext.Dashboard
  }
])

In this example an additional tab is added to the dashboard settings, and the hook route allows to display a view for this tab. This is breaking change, as each component that uses context dashboards must have ´rootContext: ViewContext.Dashboard´ in the route definition to make these settings tabs and views visible (even if no new tab was added). For example:

hookRoute({
  path: "home2",
  component: CockpitDashboardComponent,
  rootContext: ViewContext.Dashboard,
});
April 10, 2025

Added plugin label to package content information for plugin versions

In the Versions tab of an extension, the Package contents section of a selected plugin version now shows a label for each plugin version listed indicating its type. Previously, no label was shown and a console log error was thrown.

Role description no longer displayed as trusted HTML to improve security

Previously, it was possible to put malicious code into the description of inventory roles and when it was displayed, that code was treated as trusted HTML. For example, if a description was “”, the browser alert method was called when displayed. The description is treated as potentially dangerous now (as most user-provided properties) and XSS attacks as described above are no longer possible. There is no visual change for customers, non-harmful markdown is still interpreted (tags, classes are not stripped away).

Display read-only dashboard for users without dashboard creation permission

When users do not have the permission to create dashboards, a temporary read-only dashboard is now displayed to enable data visualization and prevent a blank page. This fallback dashboard is an in-memory one and not persisted in the backend.

Changed session_state property to be optional in the SSO login flow

Previously, when the option Redirect to the user interface application was enabled in the single sign-on login configuration, the UI application required the session_state and code properties in the response to the authorization request from the OAuth server. In certain cases the session_state property is not returned by the OAuth server which caused a login failure. Now the session_state property is optional and the login no longer fails due to this property missing.

Dashboard auto-refresh counter no longer freezes in certain scenarios

Previously, the auto-refresh counter freezed when a dashboard contained at least two widgets with different refresh mechanisms - one using real-time dashboard contexts and another using auto-refresh dashboard contexts. This combination now works properly for previously failing scenarios.

Fixed unresponsive groups navigation item in the Digital Twin Manager

In the Digital Twin Manager, the Groups navigation item in the asset navigator was unresponsive. This issue has been fixed. The navigation item now works properly.

Generating schemas from TypeScript types and interfaces in application build process

It is now possible to generate schemas from TypeScript types and interfaces in your project, which can then be imported during runtime. A custom webpack plugin makes this functionality possible by collecting all types imported with the c8y-schema-loader prefix during the application build process. The enhancement enables runtime validation capabilities, such as validating widget configurations (since TypeScript types are not retained in the built application). This supports upcoming advanced features such as dashboard export and import.

Improved the selection of data points in smart rules

The datapoint selection functionality in the smart rules “On measurement threshold create alarm” and “On measurement explicit threshold create alarm” has been improved. Both smart rules now use a more intuitive datapoint selector and the informational text in both rule modals has been modified to better explain the behavior and implications of each selection type. Additionally, the smart rule “On measurement explicit threshold create alarm” now allows to select both datapoints and datapoint library entries (instead of only datapoint library entries).

Introduced new toolkit package

As part of our ongoing efforts to improve the developer experience, we have published a new @c8y/toolkit npm package. This package for now only provides functionality for deploying applications or packages to a Cumulocity instance, but might be extended further. The advantage of this package over the already existing ng deploy command is that is does not come with a dependency on Angular, making it more lightweight and ideal to use in, for example, a CI/CD pipeline.

Removed groups created in the Cockpit application from asset movement dialog in the Digital Twin Manager

Previously, when selecting an asset and clicking Move selected, the dialog displayed groups without the c8y_isAsset fragment created in the Cockpit application. This fix ensures that only assets and groups with the c8y_isAsset fragment appear in the selection dialog. This change aligns with the introduction of the default asset model for groups in the Digital Twin Manager, where groups created through the DTM plugin’s “Add asset” function now include the c8y_isAsset fragment. The official “Add Asset” plugin will soon be integrated into other default applications, benefiting from this fix and bringing consistency across the platform.

Restored dashboard time range selection option for "Data points table" widget

In order to ensure seamless operation of dashboards with global date context and the “Data point table” widget, the dashboard time range selection option had temporarily been removed from the “Data point table” widget. This option has now been restored for this widget.

April 3, 2025

Cluster membership and node discovery improvements

Improvements in the area of handling Cumulocity cluster membership and node discovery have been implemented that might impact the microservice monitoring features of the Cumulocity platform.

Correct data returned when retrieving stored file metadata by ID

Previously, the endpoint for retrieving stored files metadata did not return the correct data when filtering by ID. This issue has been fixed and the correct data is now returned.

Fixed an issue with expired LWM2M device operation realtime subscriptions

In previous versions it was possible that an expired realtime subscription was considered active by the LWM2M agent. This could lead to issues like disconnecting from an already disconnected channel or not being able to connect again. As a result, the LWM2M device operations were not taken in realtime for the device. This issue has now been fixed.

Fixed issue with LWM2M external decoders not updating device data fragments properly

The LWM2M external decoders are capable of updating device data fragments. Previously, when a data fragment was of type OPAQUE and the requested fragment value was plain text, the execution crashed with an error message (“Event processing failed”) instead of updating the specified fragment. This issue has now been resolved, and data fragments are updated as intended.

Improved the LWM2M decoder events processing engine

The LWM2M decoder events processing engine has been optimized:

  • Improved the processing of external decoder events in the LWM2M agent by transitioning from a single-threaded per-tenant approach to a multi-threaded implementation.
  • Enhanced scalability and performance, enabling faster processing of millions of decoder events.

New receivedTimestampInMs placeholder for OPC UA custom action requests

For OPC UA custom action requests, you can now include the timestamp of when the node value is received by the OPC UA device gateway. Simply add the ${receivedTimestampInMs} placeholder to the custom action body template in the OPC UA device protocol. This enables users to track when a node value is processed within the gateway.

Added an alert when required plugins are not installed

Previously, when logging into the Digital Twin Manager application, if required plugins were not installed, certain functionality failed without notifying the user. This lack of feedback made it unclear why certain features were not working. This issue has now been addressed. An alert is displayed upon visiting the application if any required plugins are missing, ensuring users are informed and aware of the reason behind any functionality failures.

Added support for moving root assets and duplicate name validation in the asset navigator

In the asset navigator, root-level assets can now be moved under groups created in the Cockpit application. Additionally, validation has been added to prevent moving assets or groups to locations where assets or groups with identical names already exist, ensuring consistency and avoiding naming conflicts.

Asset model column displays label instead of key after page refresh

Previously, upon page refresh, the Asset model column on the Assets page displayed the asset model key instead of the label. This issue has been fixed, ensuring that the column consistently displays the correct asset model labels, providing a more consistent user experience.

Improved info message when no child asset models are selected

Previously, if no child asset models were selected while creating or updating an asset model, the message “No allowed child assets” was displayed, which was misleading. To enhance clarity, the message has been updated to “No allowed child asset models selected”, ensuring better alignment with the field’s purpose and reducing potential confusion.

Resolved issue with complex property updates causing duplicate labels and empty values

Two issues related to complex properties have been fixed:

  • Complex properties containing file-type fields now retain their values during updates instead of being cleared.
  • Date fields within complex properties no longer show duplicate labels when creating or editing assets.
March 31, 2025

Time Series Migration application added to default subscribed microservices

Starting in Q1 2025, the Cumulocity platform includes the Time Series Migration application as part of the default set of subscribed microservices. This service will be automatically enabled for both existing and newly created tenants. The application facilitates the migration of tenant data from legacy measurements to the new time series storage. For more information, refer to Time Series migration.

March 27, 2025

Improved OPC UA gateway behavior on HTTP queue overflow

When the HTTP queue is overflowed, the OPC UA gateway now temporarily disables the server communication until the queue is recovered. This improvement helps prevent potential system overloads and ensures more stable performance during high traffic conditions. Before disabling the OPC UA communication, an alarm is triggered to notify that the gateway is disabling communication. Once the queue and communication are restored, the previously triggered alarm is cleared.

Issues in the Tracking tab in the device details have been fixed

In the Tracking tab in the device details the device position was not updated in realtime even though the Realtime button was activated. This has been fixed and now the device position and the tracking path are both updated in realtime. Moreover, changing the time range and refreshing the list had no effect. This has been fixed and users can again filter events by different time ranges.

Success message no longer displayed when canceling the creation of a smart group

When a user opened a create smart group dialog and then canceled it, a success message was incorrectly displayed even though no action was actually completed successfully. This has now been fixed. The success alarm will now only be shown when an action is completed as expected.

Enhanced data point explorer and data point graph widgets

To enhance data analysis and visualization within the Cumulocity platform, the data point explorer and data point graph have been upgraded with new capabilities and a modernized architecture. Both features have been migrated from AngularJS to Angular, bringing improved performance, a refreshed interface, and expanded configuration options. Initially, these features will not be included by default and can only be installed as additional plugins. To install them, navigate to your custom application, click Install plugins, and search for “Data point explorer” and “Data point graph”.

Data point explorer

The data point explorer now includes a workspace implementation, allowing users to create and manage multiple workspaces for organizing their data analysis. These workspaces are stored locally and can also be shared, enabling seamless collaboration across teams. Additionally, an improved browsing and search experience makes it easier to locate specific data points across connected devices.

Data point graph

The data point graph now provides a more interactive and dynamic visualization of data points over time, helping users identify trends, patterns, and anomalies with greater ease. Key improvements include:

  • A dashboard-linked time slider that adjusts the time range across the entire dashboard when the widget is connected to the global time context, enabling synchronized data views across multiple widgets.
  • Simple click-to-toggle visibility controls for data points, alarms, and events. +- New configuration options to control alarm icon visibility, overlay multiple measurements on a single graph axis, and customize graph styling options.

These enhancements offer a more intuitive and powerful way to explore IoT data, improving efficiency and collaboration for users managing their deployments within Cumulocity.

March 20, 2025

Added new query language function

A new function isinhierarchyof() has been added to the query language.

The new function

  • matches objects in the hierarchy of the object whose ID is passed as an argument.
  • accepts one or multiple arguments.

Example

For a given hierarchy:

  • Group g1
    • Subgroup s1
      • Object o1
      • Object o2
    • Subgroup s2
      • Object o3
      • Object o4
  • isinhierarchyof(g1) - matches group g1 and all of its descendants: g1, s1, s2, o1, o2, o3, o4
  • isinhierarchyof(s1) - matches subgroup s1 and all of its descendants: s1, o1, o2
  • isinhierarchyof(s2) - matches subgroup s2 and all of its descendants: s2, o3, o4
  • isinhierarchyof(o1) - matches only object o1
  • isinhierarchyof(o3) - matches only object o3
  • isinhierarchyof(s1,s2) - matches both subgroups and their descendants: s1, s2, o1, o2, o3, o4
  • isinhierarchyof(o2,o4) - matches objects o2, o4

Default access mapping retrieves user information from access token

The single sign-on (SSO) configuration has been updated with the default access mapping set to retrieve user information from the access token. This update is required as Cumulocity recently enabled user information to be taken from either the access token or the identity token. This change improves backward compatibility.

Fixed an issue with removing all translations in the translation editor

In the translation editor on the Localization page, users were previously unable to remove all translations for a specific key. This issue has now been resolved. With this fix, users can successfully remove all translations associated with a key in the translation editor.

Improved device availability monitoring

Previously, when turning on or off the maintenance mode in the device status, Last Communication could show a wrong date. To fix this issue, the device availability monitoring has been enhanced by adding a safeguard when transitioning into or out of the maintenance mode. This prevents stale ´lastMessage´ entries and ensures accurate status tracking and improved data integrity.

Queries to the Measurement API with the filter valueSeriesFragment no longer result in a NullPointerException

When users with inventory roles permission for the API Measurement and the fragment * were triggering a query to the Measurement API using the filter valueSeriesFragment, this resulted in a NullPointerException and error code 500. The issue has been fixed and the filter can be used properly.

Tenant creation with tenant policy overriding the default tenant option works properly

Previously, when an Enterprise tenant created a subtenant with a tenant policy that tried to override the default tenant option the tenant creation failed. This issue has been fixed an creating a subtenant with a tenant policy overriding the default tenant option now works properly.

Type parameter in Alarm API now accepts multiple values

Previously, when retrieving the total number of alarms the type parameter could only take a single value, despite the documentation stating otherwise. This issue has been fixed. The type parameter now accepts multiple, comma-separated values.

GET /alarm/alarms/count?type=c8y_UnavailabilityAlarm,c8y_TemperatureAlarm

Alarms tab of a service no longer shows alarms from other sources

Previously, the Alarms tab of a service in the device details displayed alarms from other sources than the respective service. This issue has been fixed and now only alarms related to the service are displayed.

Cloud remote access feature migrated to Angular and made extendable via hookService

The Cloud Remote Access feature in Cumulocity enables users to remotely access and manage their devices. As part of ongoing improvements, this feature has been migrated from the older AngularJS framework to the newer Angular framework. This migration aligns the feature with the latest web technologies and provides a more modern and maintainable codebase. Additionally, the Cloud Remote Access feature is now extendable via the hookService, allowing developers to customize and enhance its functionality to suit their specific requirements. While the core functionality of Cloud Remote Access remains the same, users may notice minor visual changes in the user interface due to the framework migration.

Customers maintaining their own Device Management application, can refer to this git diff to identify the changes required to switch to the new implementation.

Fixed incorrect filtered items count on child devices view

Previously, the number of filtered items in the child devices view was displayed as text instead of being replaced with the actual value. This issue has been fixed and the actual value is displayed now properly.

New **Commands** tab in the service details of device services

A new Commands tab has been implemented in the service details of device services. The Commands tab allows users to send available service commands and track their execution history. For details, see Service commands.

Removed disabled "Copy dashboard" button from dashboards

To improve the user experience by removing redundant or non-functional elements in the UI, the Copy dashboard button has been removed from dashboards in the Info tab in the device details, where it was previously disabled and offered no functional benefit. The Copy dashboard button will still be available and functional for other types of dashboards.

Added Asset navigator into DTM plugins component

A new Asset navigator module has been added to the DTM plugins component, which includes official DTM plugins and enables integration with both default and custom web applications. It adds a navigation entry for assets in the navigator, making it easy for users to browse through asset hierarchies. Users can also reorganize their assets and devices within these hierarchies using drag-and-drop functionality.

Extension packages can now be archived

In the past, extension packages could not be archived in the system which led to challenges with managing obsolete or unused packages. With this change, it is now possible to archive packages which are no longer maintained. Packages can be marked as out of maintenance, while still being able to access archived packages if necessary.

Fixed incorrect error message showing up on moving groups

Previously, when attempting to move groups within a hierarchy, users received an incorrect error message stating “No assets to move to”, despite having valid destination assets available. The system now properly displays all available destination options when moving groups.

Integrated export component into Data point table widget

The export component has been integrated into the “Data point table” widget. This integration allows users to efficiently generate exports based on the data displayed in the “Data point table” widget.

Leaflet plugins can again display their custom images

A recent CSS change inadvertently prevented Leaflet plugins from including their own images. This has been reverted to restore the previous behavior. Leaflet plugins can now properly display their custom images again. Installations using Leaflet plugins that include custom images will no longer encounter missing images.

Radial gauge can now have 0 as max value

Previously, the “Radial gauge” widget did not allow setting the maximum value to 0, limiting its flexibility in certain scenarios. With this change, users can now set the max value of the radial gauge to 0 if needed. This enhancement expands the range of values the radial gauge can display, enabling users to represent a wider variety of data points and create visualizations where a maximum value of 0 is required.

Search no longer highlights the first element

In certain scenarios, the search functionality in the UI highlighted the first element in the search results. This has been fixed and the first element in the search results is no longer focused.

Updated branding and tokens in the Cumulocity Codex

As part of ongoing improvements to the Codex design system, the branding and design tokens have been updated. The changes include refreshed colors, typography, and spacing to provide a more modern and consistent look and feel across the user interface. With this change, the Cumulocity Codex documentation has been updated accordingly and now reflects the latest token updates implemented in the Web SDK."

Users with locale es-419 can again access the Cumulocity platform

Some users in Latin America were unable to access Cumulocity when their locale was set to es-419. This issue has been resolved and users with the es-419 locale can now successfully access and use the Cumulocity platform again. The fix ensures that users in the affected region have uninterrupted access to Cumulocity and can utilize all its features as expected.

Using withTotalElements parameter in queries

Many queries in Cumulocity now use the withTotalElements parameter. This way, the number of queries required to retrieve the total number of items can be significantly reduced. This change considerably improves the performance, especially when working with large datasets such as the device list.

March 19, 2025

OperationsListModule has been removed in favor of standalone components and environment providers

The OperationsListModule component, which was deprecated since version 1021.50.0, has now been removed. In case you use OperationsListComponent and/or OperationsListItemComponent you can now import them directly as standalone components. In case you want to continue to provide the Device control > Single operations feature in your Device management application, you can take advantage of the deviceControlOverviewFeatureProviderFactory() factory function which provides all necessary environment providers that hook the Single operations tab and the respective navigator node. For the Device control section on the Device info tab, you can respectively use the deviceControlTabFeatureProviderFactory() factory function. If you already import OperationsModule from @c8y/ngx-components/operations in your application, no change is needed since it has been refactored to use the provider factories as a replacement of the removed OperationsListModule.

March 14, 2025

LWM2M module removal from @c8y/ngx-components library

In a future version of the Web SDK, the LWM2M module will be removed from the @c8y/ngx-components library. If you use the LWM2M module from @c8y/ngx-components in your custom UI components, this will no longer work in future Web SDK versions and must be removed. LWM2M will be available as a plugin in the Device Management application.

Microservice SDK updated to Spring Boot 3.4

Starting from version 2025.18.0, the Microservice SDK is now using Spring Boot 3.4.2. Notice that along with Spring Boot, most other dependencies were also updated to be consistent to the dependencies which Spring Boot uses.

The version 2025.18.0 will also bring along updates to several third-party libraries and frameworks. These changes will be included in the org.springframework.boot:spring-boot-dependencies:3.4.2 dependency which comes with Microservice SDK.

Impact: The update may impact your microservices, potentially requiring code changes.

Migration Resources: Refer to the following guides for assistance with the changes:

March 6, 2025

Raising of events on offloading completion

An offloading pipeline can be configured to raise a Cumulocity event when an associated offloading or compaction run completes. Such an event comprises details of the corresponding run such as start and end time, success status, or number of offloaded records. Those events can be used to trigger follow-up actions upon completion of an offloading or compaction run.

March 5, 2025

AI-powered platform UI translations

We are pleased to announce that Cumulocity has moved to AI-powered automation for translating our entire platform UI from English into all supported languages.

In addition, a regular review is carried out by professional translators for German, French, and Japanese.

What this means for you

  • Faster availability of new features in your preferred language
  • More consistent terminology across the platform

Help us improve

While AI technology continues to advance, we recognize the importance of human expertise in ensuring accurate and contextually appropriate translations. We value your insights and encourage you to share feedback and suggestions for improving translations through our product support.

Your feedback will directly contribute to enhancing the translation quality of Cumulocity for all users worldwide.

Angular 19 upgrade and standalone components

In a future version of the Web SDK, we will update the Angular version used in the Web SDK to version 19. This update brings improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

As part of this change, the pipe, directives and components that are offered as part of the @c8y/ngx-components library, will now be available in standalone mode.

To ensure a smooth transition to Angular 19 and help you to adapt your implementations, we will provide an upgrade documentation when this change happens. This documentation will help you navigate through the changes and update your codebase accordingly.

To ensure a day one compatibility of your plugins with applications based on the v1022 Web SDK, you should already today add the standalone flag to all components/pipes/directives of your plugins. You do not need to migrate your components/pipes/directives to standalone: true, you can also set it to false. You just need to ensure that you’ve set the standalone flag. Angular v19 will otherwise default to standalone: true instead of standalone: false if the standalone flag has not been defined, which can break your components/pipes/directives.

February 27, 2025

Custom properties tab in tenant details only shows tenant-relevant custom properties

Previously, the Custom properties tab in the tenant details showed all custom properties, including those not relevant for tenants (for example, those for events or alarms), which could be confusing. With this change, only custom properties that are actually relevant for tenants are displayed in this tab. This improves clarity and usability for users managing tenant-specific custom properties.

Alarms tab in the Simulator page only shows alarms related to the selected asset

In the Simulator page, the Alarms tab previously displayed alarms that were not directly related to the selected asset. This caused confusion for users who expected to only see relevant alarms for the specific asset they were viewing. With this change, the Alarms tab now correctly filters out unrelated alarms, ensuring that users only see alarms that are pertinent to the selected asset.

Clicking on alarms in the Simulator page no longer redirects to the Alarms page

In the Simulator page, clicking on alarms previously redirected users to the Alarms page instead of showing the alarms in the Alarms tab of the Simulator page. This behavior has now been corrected.

Operation updates are now displayed in realtime in device control lists

In device control lists, operations with an updated status remained displayed even if they did no longer match the active status filter criteria. Now, operations that no longer match the selected criteria are correctly removed from the list in realtime.

Submitting values with only whitespaces in firmware, software and configuration forms no longer allowed

In the Device management application, it previously was possible to enter values (for example, in the Description, Version, URL fields) consisting only of whitespaces for firmware, software and configuration items in the corresponding repositories. To prevent this, additional validation has been added to the respective forms which disallows submitting such names. This change improves data quality and consistency for newly created firmware, software and configuration items.

Added messages for events sent by the DataHub microservice

Recently, Cumulocity DataHub was updated to send events to the Cumulocity platform in case an offloading or compaction job finishes. Therefore, new messages for the Cumulocity platform were introduced to translate these events.

Asset properties widget plugin no longer causes duplicate navigation elements

Fixed a user interface issue where navigation elements appeared twice after installing the “Asset properties” widget plugin. This issue caused duplicate menu items, such as Add dashboard in the Cockpit application and Home in the Device Management application. The fix ensures navigation elements appear only once, improving the user interface clarity and navigation experience.

Save button always enabled for number properties in Asset properties widget

Previously, in the “Asset properties” widget, the Save button was disabled for device properties of type “number” that were added via the API, as their type defaulted to “string”. This update ensures that the Save button is enabled and the “number” type is kept.

February 17, 2025

Removed obsolete AngularJS implementation of Cloud Remote Access feature

As part of our ongoing improvement efforts, in a previous version, we have migrated the Cloud Remote Access feature from the older AngularJS framework to the newer Angular framework. The new Angular-based implementation makes the old AngularJS-based implementation obsolete. The AngularJS-based implementation will therefore be removed from the @c8y/ng1-modules npm package starting with version 1022.0.0.

Customers maintaining their own Device Management application can refer to this git diff to identify the changes required to switch to the new implementation.

February 13, 2025

Clear all filters button now resets the filter settings properly

The Clear all filters button in the All devices page is intended to reset all filter settings and return the view to its default unfiltered state. However, when clicking the Clear all filters button, the filter settings were only temporarily reset until the user visited the All devices page again and continued to show filtered results instead of all items. This issue has now been resolved.

Device profiles are now filtered by software type

In order to make it easier for users to apply only relevant device profiles, pre-filtering of device profiles by the software types supported by the specific device has been implemented in the Device profile tab. The Select device profile dropdown now only shows profiles that are applicable for the software types supported by the device. This improves usability, saves time and eliminates errors.

Asset selector checkboxes can now be hidden

The asset selector is a commonly used component that allows users to select one or more assets from a list. Previously, checkboxes were always displayed next to each asset in the list. With this change, developers can now hide these checkboxes if desired. This provides more flexibility in the UI design and can lead to a cleaner look in situations where the checkboxes are not needed.

Device info dashboards no longer show up in the Cockpit application

Due to an issue, the device info dashboards known from the Device Management application were also showing up in the Cockpit application. This has been adressed now.

New template parameter field in Analytics Builder to select source or destination type

A new field named Source or Destination Type is now available in the Template Parameters dialog box of the Analytics Builder model editor. You can use the new field to select one of the following source or destination types: Device, Groups, Assets, or Other. You can then specify a default value that is based on your selection. See also Managing template parameters.

The multi-tenant apama-ctrl-mt-4c-16g microservice now supports analytic models

The multi-tenant Apama-ctrl-mt-4c-16g microservice now supports Analytic models. The Analytics Builder page is shown for tenants subscribed to the microservice, allowing users to create, deploy and manage analytic models.

February 7, 2025

Removed obsolete AngularJS components

As part of our ongoing improvement efforts, in a previous version, we have removed several legacy components related to configuration management, device list handling, and column configuration. These changes impact outdated services, directives, and templates that have either been migrated to Angular or deprecated due to lack of usage.

  • Configuration Repository: The entire module, including its service, controllers, tests, and UI templates, has been removed – now moved to Angular.
  • Configurable Device List Columns: Services, constants, directives, and modal components related to column customization have been removed – now moved to Angular.
  • Device List Handling: Controllers, directives, and configuration files related to device listings have been removed – now moved to Angular.
  • Device Details & Availability: Several templates and directives managing device details, availability, group selection, firmware, hardware, and network information have been removedno longer used.

If you were relying on any of the removed components, please migrate to the new Angular-based solutions.

February 6, 2025

Improved password setup process for new users

The password setup process for new users was unclear. It has been updated and replaced with three distinct options, from which the administrator can select one. The available options are:

  • Send password reset link as email
  • Set password that must be changed on the first login
  • Set password for the user (no change required)

See also Managing users.

Asset notes widget migrated from AngularJS to Angular

As part of ongoing improvements to the Device Management application, the “Asset notes” widget has been migrated to from AngularJS to Angular.

Fixed duplicate rendering of LWM2M device protocol details

In the LWM2M device protocol details view, some information was incorrectly shown twice, leading to confusion. This has now been fixed by removing the redundant rendering. Users viewing the protocol details for LWM2M devices will now see a clean and concise view without any duplicate information.

Integration of delete button in Info tab for LWM2M devices

Previously, the Delete button on the Info tab in the device details was not integrated for LWM2M devices and an additional cleanup operation was required. This button is now integrated for LWM2M devices so that they can be properly deleted. For more details see the LWM2M user documentation.

Service management actions added to the services list in the device details

Service management actions have been added to each service in the services list in the device details. With this change, users can now conveniently perform service-related actions such as starting, stopping, or restarting a service right from the device services list.

Added support in DTM plugins for default asset model for groups

DTM plugins now support creating and visualizing groups based on their default asset model. Users can create multiple groups simultaneously and organize devices within these groups. The updated view also displays the current labels and icons assigned to the default asset model for groups.

Default asset model for groups

A default asset model for groups has been introduced, that allows any group to be treated as an asset, providing a unified, flexible, and consistent approach to managing assets. The core functionality of groups will remain unchanged. Groups can be used as before, including the ability to nest groups within other groups. Unlike other asset models, the group asset model will not enforce hierarchical relationships, continuing the flexibility in grouping devices and other assets. This enhancement also enables customization options like changing icons and defining custom labels, similar to other asset models in Digital Twin Manager.

Fixed incorrect markup in the list display control

The list display control, which is used to display lists of items in various parts of the application, contained incorrect markup that could lead to display issues. This has now been fixed by correcting the markup in the control.

Reset to default functionality for application plugins works properly

In certain situations, the Reset to default button in the list of plugins installed to a certain application did not work properly which could lead to inconsistencies. This has been addressed so that the default application plugins will be loaded properly on resetting the plugins to default.

Updated link to the documentation in contextual help of Subassets page

Previously, the link in the contextual help on the Subassets page pointed to the Cockpit documentation. This URL has been changed to point to the Digital Twin Manager application where subassets are described as part of the dtm-plugin.

Geofence smart rule no longer creates duplicate alarms

The On geofence create alarm smart rule was periodically creating duplicate alarms when the geofence configuration was triggered. This issue has now been resolved.

January 30, 2025

Changes to Notifications 2.0 tenant context subscriptions with event API filter

Notifications 2.0 subscriptions may specify the Cumulocity APIs to subscribe to, for example events or measurements. If the events API was specifically included as the only API in a tenant context subscription filter, a type filter was also required to be set in that filter to make the subscription work. The restriction requiring a type filter when subscribing to the events API in the tenant context has been removed. Tenant context subscriptions to the events API can now be created without specifying a type filter.

Changes to Notifications 2.0 tenant context subscriptions with no API filter

As previously announced, applications utilizing the wildcard API selector in Notifications 2.0 tenant context subscriptions will now start receiving operations updates in addition to the updates they were already receiving. This change applies to both existing and new tenant context subscriptions.

Fixed issue with asset parent data in Inventory API responses

Previously, users with read inventory permissions assigned via inventory roles were not receiving asset parents data when making API calls to the Inventory service with the withParents=true parameter. The API incorrectly returned an empty deviceParents, assetParents and additionParents attribute. This issue has been fixed. Users can retrieve up to three levels of the parent hierarchy, even if they do not have permission to read the full parent object. The returned hierarchy structure contains only the ID and name of the parent object.

Implemented operation creation and update counters for usage statistics

Two new request counters for usage statistics operationsCreatedCount, operationsUpdateCount, introduced for REST endpoints in an earlier version (10.20.611.0), are now fully implemented. These counters are incremented in the following way:

  • operationsCreated: When operations are created via REST by POST request on a single operations API (/devicecontrol/operations) or the bulk operations API (/devicecontrol/bulkoperations).
    • Creating bulk operations leads to asynchronously creating individual operations in the background, and Cumulocity is counting each created operation individually.
  • operationsUpdated: When a single operation is updated via REST, or via MQTT standard SmartREST static templates (501-507), or via MQTT custom SmartREST templates.
    • Template 507 can cause multiple operations updates, so each updated operation is counted separately.

Login alias can no longer be an empty string

The login alias can no longer be an empty string, that is, a string consisting only of whitespace, null, or undefined. If no login alias is provided for the user, this field must not be included in the user object.

Device profile now includes software type information

Previously, device profiles did not include software type information for their software items. With this update, newly created device profiles will now include software type information. Additionally, device profile operations for devices that support advanced software management will also include software type information, while operations for devices without advanced software management will continue to exclude it.

Custom translations for applications now properly displayed

Applications using custom ngx translations were not properly translated. This issue has been resolved. With this fix, applications built using the Web SDK and using custom ngx translations will now properly display the appropriate translated text for the selected language.

Updated default and maximum decimal places in widget configuration

The default number of decimal places in widgets has been increased from 1 to 2, providing more precise data visualization out of the box. Users can now configure decimal places up to a maximum of 10, ensuring consistent and accurate data representation across all widgets. This standardization improves data readability and helps prevent potential misinterpretation of numerical values in dashboards.

January 28, 2025

Removal of documentation for deprecated releases

Product documentation for deprecated releases

The user & developer documentation for the releases 10.18.0 and 10.17.0 have been moved to the GitHub documentation repository. For details how to access it, see Previous documentation versions.

As a consequence, the entire content of the deprecated documentation website https://cumulocity.com/guides/ has finally been deleted.

Release notes for deprecated releases

The release notes for releases 10.18 and older, which have been provided at https://cumulocity.com/releasenotes/, have been archived. For details how to access it, see Previous documentation versions.

As a consequence, the entire content of the deprecated release notes website https://cumulocity.com/releasenotes/ has finally been deleted.

API documentation for deprecated releases

The API documentation for releases 10.18 and older, which have been provided at https://cumulocity.com/api/, has been archived. For details how to access it, see Previous documentation versions.

January 16, 2025

Fixed default LWM2M firmware update reset mechanism

In recent LWM2M agent versions, the default firmware update reset mechanism was always set to PACKAGE even if the device only supported the PULL delivery method. Now the default reset method is selected based on the firmware delivery method supported by the device.

Preventing execution of operations on resource instance level for LWM2M 1.0 devices

The LWM2M resource instance level operations have been introduced in LWM2M 1.1 but are not supported by LWM2M 1.0 devices. When LWM2M resource instance level operations (Example: read /5/0/8/0) against a LWM2M 1.0 device are created, the operation will now directly fail and not be sent to the device.

January 9, 2025

Navigator logo in dark mode correctly displayed after changing its size

The navigator logo was not displayed correctly in the dark mode after changing its size in the branding editor. This issue has now been fixed.

Data grid size automatically adjusts when device list is modified

When the device list is updated (for example, in case of creating or deleting a device), the data grid size is now adjusted automatically. This ensures accurate pagination and reduces unnecessary network requests. Users do not need to take any extra steps.

Migrated and improved the devices map in the Device Management application

As part of ongoing improvements to the Device Management application, the device map component (Devices > Map) has been migrated to a new implementation. Besides improving the functionality, the goal of this migration is to keep the component up-to-date and maintainable. The following changes have been made:

  • The limit of 100 devices displayed has been removed.
  • Areas with large density of devices are marked by clustering devices into a single marker displaying the number of devices in the area.
  • The world map is not wrapped and users can endlessly scroll to the east and to the west.
  • Automatic initial zoom and center based on the determined device positions has been introduced.
  • Auto-refresh with pause/resume functionality replaces realtime updates.

Removed obsolete AngularJS device list map module

As a result of the device map component migration to Angular, the obsolete AngularJS device list map module (c8y.parts.deviceListMap) has been removed from the @c8y/ng1-modules package. If your application uses the Device map page, you can use the new deviceMapFeatureProvider from the @c8y/ngx-components/device-map package as a replacement.

Added Codex entry for the export component

A new entry for the export component has been added to the Cumulocity Codex. This change introduces a dedicated page that provides information about the export component, its purpose, and how it can be used within the Cumulocity platform.

Alarms list widget now offers date range filtering

The “Alarm list” widget previously displayed all alarms without the ability to filter them by date. With this change, users can now filter the displayed alarms in the widget by specifying a date range. This allows users to narrow down the shown alarms to a specific time period they are interested in. Users can select the date range either specifically for the widget or bind the widget to the dashboard time context.

Device type dashboards can now be used for device types containing a dot

Previously, device type dashboards did not work properly for devices that contained a dot (".") in their type. This has now been fixed.

Hide context indicators in untranslated strings at runtime

In the past, untranslated strings shown in applications might have included additional context indicators which were confusing for end users and not intended. With this change, context indicators are now hidden for untranslated strings at runtime. This improves the user experience when the strings are not yet translated, as end users will no longer see technical details not relevant to them.

Plugins installed via tag are now correctly displayed in the list

Previously, plugins that were installed using a tag were not properly displayed in the list of installed plugins, which could cause confusion for users trying to manage their plugins. With this change, any plugin installed via a tag will now correctly appear in the plugins list. This improvement enhances the accuracy and reliability of the plugin management system, ensuring that users have a clear overview of all installed plugins regardless of the installation method.

Removed suffix from module names in dtm-plugins

Previously, the names of all modules within the dtm-plugins included the word “Module”. This suffix has now been removed.

Scrolling works properly for application activity logs

On the Properties tab of an application, users were unable to scroll through the activities log content when it exceeded the visible area. This issue has been resolved and users can now properly scroll through the full log content, even if it extends beyond the initial visible section.

Stepper navigation marks steps correctly when navigating back and forth

In some scenarios, users may navigate back and forth between steps in a stepper component. Previously, when navigating this way, the stepper incorrectly marked and displayed completed steps as incomplete. This has now been fixed so that the stepper component correctly reflects the completed steps when the user navigates backwards and forwards through the steps.

January 8, 2025
January 7, 2025

Streaming Analytics and Notifications 2.0

Streaming Analytics can now use the Cumulocity Notifications 2.0 reliable data forwarding capability to receive notifications for measurements, events, alarms, managed objects and operations that are processed by the Cumulocity platform. The benefits of using Notifications 2.0 are improved performance and reliability for messaging with Streaming Analytics applications such as smart rules, Analytics Builder and EPL apps.

Streaming Analytics intends to migrate all tenants to use Notifications 2.0, and some customers may choose to start migrating now. This change is intended to provide improved performance, reliability and resilience in planned future enhancements to Streaming Analytics.

This feature is currently in Private Preview. To take advantage of it, you must contact product support to set the notification2.streaming-analytics feature flag. In addition, users of any of the variants of the Apama-ctrl microservice must also toggle the streaming-analytics.messaging feature flag. Users of custom Apama microservices must also add the ROLE_NOTIFICATION_2_ADMIN permission to the microservice manifest. Users of custom Apama EPL projects must also add the new Cumulocity Notifications 2.0 bundle. Apama EPL projects that remotely connect to Cumulocity IoT via the long-polling interface will benefit from improved robustness after migrating to Notifications 2.0. For more information, including how to toggle the feature flags, see Configuration requirements for Notifications 2.0.

December 19, 2024

Added operation request counters to usage statistics

Two new properties, operationsCreatedCount and operationsUpdateCount, have been added to all REST endpoints which will return detailed request counters for usage statistics. In a first implementation step, the Cumulocity platform returns these properties with 0 values. In a future implementation, counting logic in reaction to REST requests and MQTT messages creating and updating operations will be added.

Added two new columns to the Usage Statistics page

To provide more detailed insights into platform usage, the Usage statistics page for Enterprise tenants has been extended with two new columns: “Operations Created” and “Operations Updated”. These columns present the number of operations that have been created and updated, respectively.

This change enhances the granularity of the usage statistics request counters, enabling better analysis and understanding of platform activity. Existing usage statistics data and functionality remain unaffected by this addition.

Always return null values for missing measurements in series

Missing measurements are indicated by a null placeholder in the values array of a series endpoint. Previously, if the missing measurements were in the end of the array these null values were left out as part of the response, which could lead to confusion. Now, null values are always present for missing measurements.

Custom applications are no longer unintentionally cleared on updating a user profile

Fixed an issue where the custom applications in a user profile were cleared when other fields in the user profile were updated.

Improved performance of local smart rules creation and update

Previously, the request time for creating or updating a smart rule increased with the number of enabled or disabled sources. Therefore it was recommended to not select the Activate also for <number> child assets checkbox when a local smart rule was created on a group containing many devices.

With this change the performance of requests has been improved and now updating a smart rule by adding or removing a single device ID from the list of enabled or disabled sources (enabledSources or disabledSources) is very fast.

Additionally, creating a local smart rule has become much faster in case of a large number of direct children of a top-level group. In case of deeper inventory hierarchies only the first level of the hierarchy is validated faster, so creating a local smart rule can still take a long time if the group has hundreds of descendants deeper in the hierarchy and all of them are selected as enabledSources.

Migrated localization user interface from Digital Twin Manager application to Administration application

As part of the ongoing migration efforts, the user interface for managing translations has been migrated from the legacy Digital Twin Manager framework to a new modern framework. The functionality remains the same, allowing users to view, edit and manage translations as before. However, the underlying technology has been updated, providing better performance, stability and maintainability of the translations user interface going forward.

Added link to user documentation in the smart group creation dialog

To support users when creating smart groups, a link to the user documentation on smart groups has been added to the smart group creation dialog. This allows users to quickly access helpful information.

LWM2M device logging level configuration

For LWM2M devices, it is now possible to disable or adjust the granularity of logging events per device during the device registration or from the LWM2M configuration tab of the existing device. When enabled, log events are visible in the device’s events. Lifecycle events are the default selected option. The global configuration from the LWM2M Service for enabling event logging has been removed. For more details see LWM2M device registration advanced settings and LWM2M configuration.

LWM2M Opaque type serialization to byte array is now deprecated

By default, the LWM2M service serializes binary data of a resource such as Opaque type to a byte array in Cumulocity representations. This functionality is now deprecated and will be changed in the future to the hexadecimal string format. For now the default serializer is still serialized to the byte array and the format can be switched only on the instance level. This change affects the way the data is represented in Cumulocity objects (operations, values displayed in the Objects tab). It does not affect the communication with LWM2M devices.

Auto refresh can now be enabled globally in dashboards

Previously, auto refresh was only available in certain parts of the application, such as the Alarms page, “Alarms” widget and “Map” widget. With this change, auto refresh can now be enabled globally in any dashboard. This means that the data displayed in widgets, that support this functionality and have it enabled, will be automatically updated at set and common intervals, without the need to manually refresh or set their intervals separately. The impact of this change is an improved user experience as users will always see the most up-to-date information without having to take any additional action.

Dashboard template setting now visible for devices without type property

Previously, when a device had no type property assigned, the dashboard template section in the dashboard settings was hidden. Now, in this case, the section is visible but information is provided that the dashboard template is only enabled when a type is added to the device. Moreover a button is provided which navigates the user to the device view in the Device Management application.

Enhanced alarm details view with the option to add custom tabs

It is now possible to extend the alarm details view with custom tabs. This allows developers to display any kind of additional information in the context of an alarm. Existing alarm details remain unchanged but can now be enhanced with additional custom tabs.

Enhanced Data points table widget

As part of the ongoing modernization efforts to migrate the UI to Angular, the “Data points table” widget has now been migrated from AngularJS to Angular. This change improves the performance, maintainability and consistency of the widget with the rest of the application. The widget now offers enhanced features including:

  • Configurable decimal place precision for data point visualization
  • Improved responsiveness across different screen sizes and devices
  • Auto-refresh based on configurable interval

All existing functionality remains unchanged, ensuring a seamless transition for current users.

New datapoint export component

To enable users to easily export datapoints from Cumulocity, a new generic datapoint export selector has been implemented. This new component allows users to select the time range, export type, aggregation (based on the export type) and file format for the datapoint export. Depending on the size of the datapoint records to be exported, the exported file is then generated and downloaded directly or emailed when ready. The datapoint export component makes it much simpler for users to get the device data they need out of Cumulocity in their desired format.

Translations loaded from a dedicated application

To improve the maintainability in the application, the translations are now loaded from a dedicated application. Previously, the translations were scattered across different parts of the codebase, making it difficult to manage and update them consistently. With this change, all translations are consolidated in a single location, simplifying the process of adding, updating, and maintaining translations. This change does not have any direct impact on end users or the functionality of the application, but it contributes to a cleaner and more organized application infrastructure.

December 12, 2024

Enabling time series support on the Management tenant is no longer possible

Enabling time series support on the Management tenant is no longer possible to prevent time series from being enabled on subtenants by tenant option inheritance.

Improved Custom properties tab in the tenant details

The Custom properties tab in the tenant details has been improved by moving extraneous information to a new Limits tab providing a cleaner and more consistent interface.

lastUpdated fragment of a group is updated correctly when a device is added upon registration

Each device registration request includes information on the group that the device will be assigned to once the registration is successful. Previously, the group’s “lastUpdated” fragment was not updated correctly. With this change, the “lastUpdated” fragment is updated to show the current date when the new device has been added successfully.

Latest measurement values tenant option now works with wildcard character

Previously, the tenant option which is used to enable latest measurement values was not not working with the wildcard (*) character. With this change, the wildcard character can be used to enable latest measurements for all series:

PUT /tenant/options/measurement.series.latestvalue

{
  "*":""
}

Measurement series can no longer be created without value

Previously, it was possible to create a measurement series without value. This issue has been fixed as the value is mandatory. Now a value must be provided on measurement creation.

Measurement series endpoint returns an error if the series contains more than one dot

Property names used for fragment and series must not contain whitespaces nor special characters (https://cumulocity.com/api/core/#operation/postMeasurementCollectionResource). Previously, the /measurement/measurements/series endpoint accepted a series query parameter which contained more than one dot, although it returned an empty response. With this change the endpoint returns a 422 error if the series query parameter contains more than one dot.

New "Limits" tab in tenant details

To provide a better overview of the resource limits and quotas configured for a tenant, a new Limits tab has been added to the tenant details page. This tab allows to configure the maximum number of devices, requests, and queue sizes for the tenant. With this change, tenant administrators can now easily view and manage the resource limits for their subtenant.

See also Setting limits.

Subtenant creation request requires domain being a subdomain of the parent tenant

The domain of a tenant, created under either the Management tenant or Enterprise tenant, is now required to be a subdomain of the parent tenant. Previously, the domain of a tenant created under the Management tenant could have a custom domain not related to the parent tenant.

Support for ID tokens provided by external IAM servers in the SSO authentication process

Support for ID tokens provided by external IAM servers has been added and can now be used in the authentication process via single sign-on (SSO). Previously, only access tokens were supported by the Cumulocity platform. Now, the administrator can decide through the configuration whether user data retrieved from the external server, such as first name, last name, phone number, email, and roles, should be loaded from the access token or the ID token.

Fixed layout issues with data grid group column dropdown

The data grid component had layout issues with the group column dropdown. These have been resolved by adjusting the dropdown scroll height in relation to the bottom footer and adding a shadow to the dropdown for increased contrast between user interface elements.

Scheduling bulk operations with a precise delay now works properly

In the Cumulocity platform, bulk operations allow performing actions on multiple devices simultaneously. However, scheduling these operations with a delay in milliseconds was not working as expected. This issue has now been resolved. With this fix, bulk operations can now be scheduled with precise delays specified in milliseconds, enhancing the reliability and efficiency of device management tasks.

Changed default date selection option in widgets configuration

In the “Data point graph”, “Data point table”, and “Event list” widgets configuration, the default option in the Date selection field has been changed from “Widget configuration” to “Dashboard time range”.

Date range filter added in the alarms overview

To improve the usability of the Alarms page, alarm filtering by a date range has been implemented. Users can now filter alarms by specifying a start and end date, allowing to narrow down the displayed alarms to a specific time period. This change enhances the alarm management experience by providing more granular control over the alarms being viewed, making it easier for users to focus on relevant alarms within a desired timeframe.

Improved validation error for invalid branding variant names

Previously, when specifying an invalid branding variant name via the UI or API, the resulting validation error was not clear and made it difficult to identify the issue. With this change, the platform now provides a more meaningful and specific validation error message when an invalid branding variant name is entered. This improvement helps users quickly identify and correct any issues with the specified branding variant name, saving time and effort in the configuration process.

Label for the "Display as" function no longer overlaps with other elements in the header

In the Cumulocity user interface, the label for the “Display as” function in the header was overlapping with other header elements, making it difficult to read and select the desired option. This issue has now been resolved. The label for “Display as” is now properly positioned and no longer overlaps with the header, ensuring a clear and accessible user interface for all users.

Option added to enable or disable the dashboard manager in the application configuration

In the Cockpit application, it is now possible to disable or enable the dashboard manager in the Application configuration page. By default, the dashboard manager is enabled.

December 10, 2024

Dashboard manager extracted into a separate plugin

In an upcoming version the dashboard manager module will be extracted from the Cockpit application and added as a separate plugin. This change might be a breaking change as the dashboard manager module will no longer be part of @c8y/ngx-components/context-dashboard, but will be part of @c8y/ngx-components/dasboard-manager.

This change does not affect the layout and UX of the Cockpit application nor does it add any new functionalities. As a side effect, a performance improvement might be noticed as the dashboard manager from now on will be loaded lazily (that is, only after main application is loaded).

December 5, 2024

Creating OPC UA device type without the matchedNodeIds list for applyConstraints

Previously, the device type creation via the OPC UA management service API failed when matchedNodeIds list was not defined for applyConstraints. This issue has now been resolved, and apply constraints can now be set without defining a matchedNodeIds list.

December 2, 2024

Microservice SDK updated to Spring Boot 3.3

This is a follow-up on a recent announcement about migrating the Microservice SDK to Spring Boot 3.

Starting from version 10.20.155.0, the Microservice SDK is now using Spring Spring Boot 3.3.x, which marks the end of the recent dependency updates published in quick succession. Notice that along Spring Boot, most other dependencies were also updated to eliminate all security vulnerabilities those dependencies had.

Because of the amount of changes we also published intermediate versions to help with the upgrade process of all the applications using the SDK.

Version 10.20.150.1 contains a fix for the previously announced version 10.20.150.0 for applications configuring additional servlets. Use this version when updating your application to Spring Boot 3.0. For details refer to the Spring Boot 3.0 Migration Guide.

Version 10.20.151.1 is based on Spring Boot 3.1 and is recommended as an intermediate step to limit the amount of changes done at once. For details refer to the Spring Boot 3.1 Migration Guide.

Version 10.20.153.1 is based on Spring Boot 3.2 and is another recommended intermediate step. For details refer to the Spring Boot 3.2 Migration Guide.

Finally, when upgrading to version 10.20.155.0 based on Spring Boot 3.3, refer to the Spring Boot 3.3 Migration Guide.